【问题标题】:How can I click on span button which has no lisk with selenium webdriver Python?如何单击与 selenium webdriver Python 没有关系的 span 按钮?
【发布时间】:2018-03-15 10:45:17
【问题描述】:

这是我的 HTML 代码:

<button class="_qv64e _gexxb _r9b8f _njrw0">Follow</button>

但是,当我尝试点击这个时,出现了这个错误:

selenium.common.exceptions.NoSuchElementException:消息:无法 定位元素:span._qv64e _gexxb _r9b8f _njrw0

它以我使用的任何方式发生,例如在 xpath、CSS 选择器、标签名称和 ... 中。此错误已通过此代码发生:

driver.find_element_by_css_selector("span._qv64e _gexxb _r9b8f _njrw0").click()

【问题讨论】:

  • 为什么不能使用 xpath?
  • 不是span,而是button

标签: python python-3.x selenium-webdriver xpath css-selectors


【解决方案1】:

当使用css_selector 时,空格是有意义的。您正在使用的选择器告诉驱动程序查找带有&lt;_njrw0&gt; 标签的元素,该元素具有带有&lt;_r9b8f&gt; 标签的祖先,依此类推。该按钮还有&lt;button&gt; 标签,而不是&lt;span&gt; 标签。

你需要在任何类名前面使用.,并且不能有空格

driver.find_element_by_css_selector("button._qv64e._gexxb._r9b8f._njrw0").click()

【讨论】:

  • 当我使用 xpath 时,你能问出同样的问题吗?
  • 我使用了这个代码:driver.find_element_by_xpath("""//*[@id="react-root"]/section/main/article/header/section/div[1]/span /button""").click()
  • @hamedbaziyad 也许xpath 不正确,如果没有看到第一个元素的完整 html 结构,我无法判断。
猜你喜欢
  • 1970-01-01
  • 2016-12-08
  • 2016-05-31
  • 1970-01-01
  • 2014-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-03
相关资源
最近更新 更多