【问题标题】:Is there a way using python to select an item in the combobox "Region" using selenium?有没有办法使用 python 使用 selenium 在组合框“区域”中选择一个项目?
【发布时间】:2020-05-17 15:55:21
【问题描述】:

我想用这个脚本在这个网站LINK Python + Selenium 中选择组合框“Region”的第一项

chromeOptions = webdriver.ChromeOptions()
prefs = {'profile.managed_default_content_settings.images':2, 'disk-cache-size': 4096 }
chromeOptions.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options=chromeOptions)

url = 'https://www.tgr.cl/certificado-pago-deudas-contribuciones-tramite/'
driver.get(url)
driver.switch_to.frame(driver.find_element_by_name('busqueda'))

driver.find_element_by_xpath("//select[@name='region']/option[text()='REGION DE ANTOFAGASTA']").click()

但是当我切换框架时,我得到了这个错误。输出:

NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[name="busqueda"]"}

任何想法为什么会发生这种情况?

【问题讨论】:

  • 内容在框架内。你切换到框架了吗?
  • 不,我没有。但是,如果我尝试使用此脚本查找 iframe,结果是相同的:driver.find_elements_by_tag_name('iframe') 有什么建议吗?
  • 请添加你用来切换框架的代码,然后会出现什么错误
  • 我用新代码和输出更新了问题。
  • 我在您共享的一小段代码中以及您链接的页面的源代码中都没有看到任何名为“busqueda”的元素。此外,这与在 select 元素中选择选项无关,因为您没有到达该部分。您正在寻找的框架似乎被称为“wp_tgr_frame”

标签: python selenium selenium-webdriver web-scraping selenium-chromedriver


【解决方案1】:

<iframe> 这样的所有子文档,你的元素在延迟加载中比你的整个网页慢。最好等待几秒钟,或者直到 Selenium 检测到 <iframe>

# Wait specifically for that iframe, then switch to it
from selenium.webdriver.support.ui import WebDriverWait

iframe_detector = WebDriverWait(driver, 5).until(lambda x: x.find_element_by_name('busqueda'),
                                                  message="Iframe never loaded!")
driver.switch_to.frame(iframe_detector)

#Just wait and hope it loads in
driver.implicitly_wait(5)
driver.switch_to.frame(driver.find_element_by_name('busqueda'))

您可能需要更长的等待时间来解决您的互联网连接问题。

【讨论】:

    【解决方案2】:

    问题在于组合框是 iframe 的 iframe。因此,您需要切换到第一个 iframe,然后再切换到他的孩子,这样您就可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-26
      • 1970-01-01
      • 2017-01-21
      • 1970-01-01
      • 2020-05-15
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      相关资源
      最近更新 更多