在Python中使用Selenium时,如何处理名称中的冒号(:)?

问题描述 投票:0回答:1

我试图在一个网页中搜索一个数字(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")

你能帮帮我吗?

python selenium xpath css-selectors nosuchelementexception
1个回答
0
投票

名称 的属性 <input> 元素包含 : 字如。

vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit

And : 含有特殊效果,当使用在 . 因此,你的程序无法找到所需的元素,并引发了 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
    
  • 浏览器快照。

muisca


参考

你可以在以下几个相关的讨论中找到。

© www.soinside.com 2019 - 2024. All rights reserved.