【问题标题】:Selenium and python3 activate textbox without entering a valueSelenium 和 python3 在不输入值的情况下激活文本框
【发布时间】:2019-01-14 22:25:26
【问题描述】:

使用 selenium 和 python3 编写脚本,是否有可能让脚本单击 http://digesto.asamblea.gob.ni/consultas/coleccion/ 上的文本框(单击“Búsqueda avanzada”)而不输入值,以便光标在该文本框中处于活动状态(通常由闪烁的垂直线表示),见示例图?

通常会使用

driver.find_elements_by_xpath('//*[@id="txtCaptcha"]').click()

但这并没有给出预期的结果,因为文本框不是“活动的”,看起来像这样:

我的想法是让脚本“激活”文本框并等待我插入验证码,这样我就可以开始写作,而不是每次自己点击文本框。

【问题讨论】:

  • 当前输出是多少?共享 HTML 和您当前的选择器
  • 嗨,Andersson,请看我原帖的更新。
  • 我在该页面上看不到 textarea/input 元素。与搜索字段共享您用于打开页面的代码
  • 我在你写评论之前更新了文本,你需要点击“Búsqueda avanzada”才能看到我看到的内容。

标签: python python-3.x selenium


【解决方案1】:

您可以等待元素可点击,然后点击它:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'txtCaptcha'))).click()

【讨论】:

  • 不幸的是,它并没有为我“激活”文本框。也许我发给你的 xpath 是错误的?
  • @TilHund ,对我来说,一旦选中复选框"Búsqueda avanzada"(尝试WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'cavanzada'))).click()),它就会将焦点放在搜索框中...您当前的输出是什么?你遇到异常了吗?
  • 修复了我的问题。它在我身上。我现在工作得很好。再次感谢你,安德森! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-01
  • 1970-01-01
相关资源
最近更新 更多