首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python selenium点击span元素

如何使用python selenium点击span元素
EN

Stack Overflow用户
提问于 2017-06-21 07:17:19
回答 2查看 20.9K关注 0票数 8

我试着用python selenium点击了一整天,没有运气,尝试了几个选择器,xpath..nothing看起来很适合我。这是我尝试点击的元素:

代码语言:javascript
复制
<span style="vertical-align: middle;">No</span>

下面是我的明显的非函数代码

代码语言:javascript
复制
driver.find_element_by_link_text("No")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-21 12:49:15

只有当您的span是锚标签的子级时,例如<a><span style="vertical-align: middle;">No</span></a>,按链接文本搜索才能帮助您。当你尝试点击它时,我相信它真的在一个锚里面,但如果不是,我建议你使用带有谓词的XPath,只有当确切的文本内容匹配时才返回True

代码语言:javascript
复制
//span[text()="No"]

请注意,//span[contains(text(), "No")]是一个非常不可靠的解决方案,因为它将返回带有文本的span元素

  • “十一月雨”
  • “是的。不。”
  • “我认为查克·诺里斯可以帮助你”

等等。

如果获取NoSuchElementException,则可能需要等待元素出现在DOM

代码语言:javascript
复制
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait

wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='No']"))).click()
票数 13
EN

Stack Overflow用户

发布于 2017-06-21 07:29:57

我不知道是否还有其他元素或其他东西。您可以使用css选择器选择范围:

代码语言:javascript
复制
driver.find_element_by_css_selector('span').click()

我认为这是代码中唯一的span标记。可能不是。

作为一个非常“散弹枪”的解决方案。你可以点击每一个span标签:

代码语言:javascript
复制
for element in driver.find_elements_by_css_selector('span'):
    element.click()

这不是一个完美的解决方案,但它可能是一个起点。

另一个问题。页面是否动态加载内容?比如xhr之类的?也许您可能需要让selenium稍等片刻。要让selenium等待,您可以使用以下命令:

代码语言:javascript
复制
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

wait_time = 60 # a very long wait time
element = WebDriverWait(driver, wait_time).\
    until(EC.element_to_be_clickable((By.LINK_TEXT, 'No')))
element.click()

或者,您可以使用By.CSS_SELECTOR而不是By.LINK_TEXT。因此,您可以使用更具体的规则来匹配或任何其他选择方法here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44664434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档