【问题标题】:Cannot click() href element无法单击() href 元素
【发布时间】:2019-09-12 15:35:52
【问题描述】:

我正在尝试点击“WANTED-LINK-!!!”。不断收到“元素点击被拦截”错误!

HTML:

<span class="workable-tops">
  <a href="WANTED-LINK-!!!!" target="_blank"><span class="label-box" data-tops="names">Site555</span></a>
</span>

我正在通过 python 使用 selenium webdriver 来完成这项任务。

dat = driver.find_element_by_css_selector('a[class="workable-tops"]')

dat.find_element_by_partial_link_text('WANT').click()

我想要一种更有效的方法来单击元素并填充相关页面。

【问题讨论】:

  • 您认为我们已经知道WANTED-LINK-!! 及其html 结构在哪里了吗?您是否认为该帖子解释了问题的所有方面以由完全不了解该问题的人重现它?欢迎来到!请阅读minimal reproducible example 并在帖子中添加必要的信息,谢谢
  • 忘记将html标记为代码;它消失了。我知道你不知道html。这更像是一个错字,而不是无所不知的假设,
  • Re: 被拦截的点击,尝试等到目标元素“可用”:selenium-python.readthedocs.io/waits.html.
  • 基于该标记,有一个 span 具有一类 work-tops 但不是锚元素。尝试调整选择器。
  • “元素点击被拦截”错误意味着页面上的另一个元素位于链接的顶部。您要么需要等待元素变为可点击,要么找出阻止点击的元素。您可能需要在页面上执行其他操作才能取消阻止链接。

标签: html python-3.x selenium selenium-webdriver


【解决方案1】:

使用 xpath 按类名查找 span 和底层 a 元素应该可以工作:

driver.find_element_by_xpath("//span[@class='workable-tops']/a").click()

如果这不起作用,您可能需要添加等待元素可点击。

【讨论】:

  • @Mixter 如果它有帮助或任何答案/问题是/有用的,请接受/支持答案以帮助未来的读者
【解决方案2】:

引入 WebDriverWaitelement_to_be_clickable() 并遵循 xpath 选项。

WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//span[@class='workable-tops']/a[./span[text()='Site555']]"))).click()

您需要导入以下内容。

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

【讨论】:

  • 不适用于 xpath。我正在尝试 css:dat=wait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,'span[class="workable-tops"]'))).click()。
【解决方案3】:

我可以通过 Beautifulsoup 的标签访问它:

    from bs4 import BeautifulSoup  
    driver.get('link')
    soup = BeautifulSoup(driver.page_source,"lxml")
    my_text = soup.find_all("a", class_="workable-tops")
    print(my_text.text) 

感谢大家的支持。

【讨论】:

    猜你喜欢
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 2022-01-05
    • 2020-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多