AttributeError:“WebElement”对象没有属性“单击”错误尝试使用 Selenium Python 单击链接
Posted
技术标签:
【中文标题】AttributeError:“WebElement”对象没有属性“单击”错误尝试使用 Selenium Python 单击链接【英文标题】:AttributeError: 'WebElement' object has no attribute 'Click' error trying to Click on a link using Selenium Python 【发布时间】:2022-01-06 16:54:33 【问题描述】:所以我正在尝试访问一个搜索页面,该页面涉及点击页面底部的可点击链接。我的代码似乎能够找到链接,或者在尝试时至少不会引发错误,但是我收到错误“AttributeError:'WebElement' object has no attribute '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-注册表/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&sortBy=documentTypeSort&sortDirection=asc&pageSize=10&keywords=pacific%20water%20shrew"
【问题讨论】:
您正在使用哪种编程语言。如果是python,则不需要semi-colon
,只需单击带有小写字母的click()
。
【参考方案1】:
你的语言是python,所以你需要使用click()而不是click()
此外,要点击 clickable 元素而不是 presence_of_element_located(),您需要为 element_to_be_clickable() 引入 WebDriverWait,您可以使用以下任一方法Locator Strategies:
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()
【讨论】:
哦,有趣的是,似乎有一些不同的语法需要注意超过 selenium。感谢那。至于选择,我现在要单击的元素就是这个。<span data-v-7ee3c58f="" class="name-primary">COSEWIC Status Appraisal Summary on the Pacific Water Shrew <em>Sorex bendirii</em> in Canada</span>
我已经尝试通过链接文本和部分链接文本也通过类名,尽管有两个同名,我似乎无法用[0]
索引第一个。虽然我尝试过复制 XPath,但我不懂 XPath 或 CSS。没用
@MaxDuso 很高兴能为您提供帮助。 Vote up questions and answers 您发现这对未来读者的利益很有帮助。见Why is voting important。以上是关于AttributeError:“WebElement”对象没有属性“单击”错误尝试使用 Selenium Python 单击链接的主要内容,如果未能解决你的问题,请参考以下文章
AttributeError: 'RDD' 对象没有属性 'show'
AttributeError:“NumpyArrayIterator”对象没有属性“类”
AttributeError:模块 'dbus' 没有属性 'lowlevel'