【问题标题】:Python Selenium Click and Input Into Text BoxPython Selenium 单击并输入到文本框中
【发布时间】:2016-06-24 16:12:01
【问题描述】:

我正在运行 Python 3.5,试图“单击”带有 selenium 的文本框,以便输入多行数字。我已经编写了登录和导航到文本框的脚本,但我无法让我的代码输入“1234”。

这是代码,也许我缺少的 HTML 中有更大的东西,但检查器工具显示的点击框如下...

<td align="left" style="vertical-align: top;"><textarea
 class="stb-SearchBox" style="width: 100%; height: 5em;"
 dir=""></textarea></td>

我已经尝试了以下方法和其他一些不同的方法......也许我错过了什么?

clickBox = driver.find_elements_by_xpath("//*[contains(class(), 'stb-SearchBox')]").click()

clickBox = driver.find_elements_by_class('stb-SearchBox').click()

最终我将使用我的代码

clickBox.send_keys("1234")

【问题讨论】:

  • 首先find_elements返回一个列表并且没有xpath class()函数,它将是find_element_by_xpath("//*[@class='stb-SearchBox']")

标签: python html selenium


【解决方案1】:
//*[contains(class(), 'stb-SearchBox')]

您在这里错误地检查了class 属性。它需要是@class 而不是class()

driver.find_elements_by_class('stb-SearchBox').click()

Python selenium 绑定中没有可用的 find_elements_by_class() 方法。请改用find_element_by_class_name()

或者,您可以使用简单的 CSS 选择器 来定位元素:

driver.find_element_by_css_selector("textarea.stb-SearchBox")

【讨论】:

  • 嗯,它仍然无法选择和输入 1234...如果我犯了愚蠢的错误,我深表歉意,我对 Python、Selenium 模块和编码世界还是很陌生;P
  • 不久前想通了,但我想我会发表评论以结束这件事。只是“复制 xpath”而不是寻找它。并且用 ' 而不是 " 注释 xpath 有很大的不同。
猜你喜欢
  • 1970-01-01
  • 2021-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 2020-01-18
相关资源
最近更新 更多