我试图在一个网页中搜索一个数字(https:/muisca.dian.gov.coWebRutMuiscaDefConsultaEstadoRUT.faces。).
我知道输入元素的名称是:"vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit",但是当我试图找到这个元素时,我得到了这样一个错误信息:"vistaConsultaEstadoRUT:numNit"。"vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit", 然而当我试图找到这个元素时,我得到了这个错误。
"NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"[name="vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit"]"}
(Session info: chrome=81.0.4044.138)"
这就是我所尝试的。
from selenium import webdriver
driver = webdriver.Chrome("C:\\Users\\jcherrerab\\Anaconda3\\Lib\\site-packages\\selenium\\webdriver\\chrome\\chromedriver.exe")
driver.get("https://muisca.dian.gov.co/WebRutMuisca/DefConsultaEstadoRUT.faces")
driver.find_element_by_name("vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit").send_keys("860003020")
你能帮帮我吗?
该 名称 的属性 <input>
元素包含 :
字如。
vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit
And :
含有特殊效果,当使用在 css-selectors. 因此,你的程序无法找到所需的元素,并引发了 NoSuchElementException
要找到该元素,你可以使用以下任何一种方法。定位策略:
使用 css_selector
:
driver.find_element_by_css_selector("input[name='vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit']")
使用 xpath
:
driver.find_element_by_xpath("//input[@name='vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit']")
由于你是调用 send_keys()
理想情况下,你需要诱导 WebDriverWait 对于 element_to_be_clickable()
您可以使用以下任何一种方式 定位策略:
使用 CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit']"))).send_keys("860003020")
使用 XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@name='vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit']"))).send_keys("860003020")
说明: : 你必须添加以下导入。
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
浏览器快照。
你可以在以下几个相关的讨论中找到。