当前位置: 首页 > 知识库问答 >
问题:

attribute error:“WebElement”对象没有属性“Click”尝试使用Selenium Python单击链接时出错

空枫涟
2023-03-14

因此,我正在尝试访问一个搜索页面,其中涉及单击页面底部的可点击链接。我的代码似乎能够找到链接,或者至少在尝试时不会抛出错误,但是我得到了错误“属性错误:'WebElement'对象没有属性'Click'”,即使该元素在页面上是物理可点击的。这是代码和网站。

driver = webdriver.Edge(r'C:/Users/User/Desktop/Anaconda/edgedriver_win32/msedgedriver')
driver.get("https://www.canada.ca/en/environment-climate-change/services/species-risk-public-registry/cosewic-assessments-status-reports")
#click on the "Search COSEWIC status reports" button
element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.LINK_TEXT, "Search COSEWIC status reports"))
)
link = driver.find_element_by_link_text("Search COSEWIC status reports");
link.Click();

如果我错误地认为这个元素是可点击的,请让我知道。为了清楚起见,我试图点击链接“搜索网页底部的COSEWIC状态报告”https://www.canada.ca/en/environment-climate-change/services/species-risk-public-registry/cosewic-assessments-status-reports"

我已经找到了一个解决办法,但问题仍然存在。我遇到了另一个需要点击的属性,它似乎没有属性“id”或任何容易识别的东西。

<span data-v-7ee3c58f="" class="name-primary">COSEWIC Status Appraisal Summary on the Pacific Water Shrew <em>Sorex bendirii</em> in Canada</span>

我已经尝试将XPath复制到这个元素和XPath中的id,但是它们似乎不起作用。这是页面上的第一个结果。”https://species-registry.canada.ca/index-en.html#/documents?documentTypeId=18

共有1个答案

童子明
2023-03-14

您的语言Bing是python,因此您需要使用Click()而不是Click()

此外,要点击可点击的元素而不是presence_of_element_located(),您需要为element_to_be_clickable()引入WebDriverWait,并且您可以使用以下定位器策略之一:

driver = webdriver.Edge(r'C:/Users/User/Desktop/Anaconda/edgedriver_win32/msedgedriver')
driver.get("https://www.canada.ca/en/environment-climate-change/services/species-risk-public-registry/cosewic-assessments-status-reports")
#click on the "Search COSEWIC status reports" button
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.LINK_TEXT, "Search COSEWIC status reports"))).click()
 类似资料:
  • 问题内容: 我正在尝试使用python在Selenium Webdriver中使用click命令。但是我收到以下错误。有人能帮我吗? 这是我的程序 我想我缺少了一些东西。请建议我 问题答案: 感谢您的帮助。我为自己找到了答案。“ Dan Niero”给出的想法 问题是,我使用而不是。因此,s会有所作为。实际上,我正在遵循Eclipse :(。显然返回列表,因此如果我发送click事件,它将无法理解

  • 问题内容: 我想在默认设置为“季度”的页面上单击“年度”按钮。有两个基本上相同的链接,除了一个链接,所以我试图复制xpath来单击按钮(也尝试了其他选项,但没有一个起作用)。 但是,我得到了。我读了很多类似的文章,但无法解决我的问题..因此,我认为必须调用/单击/执行javascript事件以某种方式不同。 html如下: 问题答案: 我仍然建议您通过 XPATH* 使用 linkText 。原因

  • 问题内容: 我正在尝试使用cPickle在远程环境中加载该功能。但是我得到了错误“’模块’对象没有属性…”。我真正困扰的是,即使无法加载,命名空间也已经包含了该属性。 这是run.py 错误是 问题答案: 我发现此链接很有帮助:http : //stefaanlippens.net/python-pickling-and-dealing-with-attributeerror-module- ob

  • 问题内容: 我想在默认设置为“季度”的页面上单击“年度”按钮。有两个基本上相同的链接,除了一个链接,所以我试图复制xpath来单击按钮(也尝试了其他选项,但没有一个起作用)。 但是,我得到了。我读了很多类似的文章,但无法解决我的问题..因此,我认为必须调用/单击/执行javascript事件以某种方式不同。 html如下: 问题答案: 我仍然建议您通过 XPATH* 使用 linkText 。原因

  • 问题内容: 我想转换火花数据框架以使用以下代码添加: 详细的错误消息是: 有人知道我在这里做错了吗?谢谢! 问题答案: 您无法使用数据框,但可以将数据框转换为RDD并通过映射将其映射。在Spark 2.0之前,别名为。使用Spark 2.0,您必须先明确调用。

  • 问题内容: 我如何解决此错误,我是从GitHub下载此代码的。 引发错误 请帮我解决这个问题! 我用了: 我得到这个错误。有人帮我,我只想让它工作为什么这么难? 问题答案: 我怀疑您从中复制代码的地方启用了急切执行功能,即在程序开始时调用了该位置。 您也可以这样做。希望能有所帮助。 更新:请注意,默认情况下,TensorFlow 2.0中启用了急切执行。因此,以上答案仅适用于TensorFlow