![](/img/trans.png)
[英]Can't find a way to click on an href link with selenium (Python 3.7)
[英]selenium python find link by href text and click it
我有我的腳本登錄到一個網站。 然后我需要點擊一個包含在其中的另一個鏈接
<a href> </a>
我嘗試了多種方法但沒有成功。 我需要“可用部署”的鏈接僅在單擊名為“作業板”的下拉框后出現。
站點代碼如下所示:
<li class="">
<a aria-expanded="false" class="dropdown-toggle" data-toggle="dropdown" href="portalPost?s=a1W390000045MxAEAU&p=a1V39000003y7e1EAA" role="button">Job Board <span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="portalPage?s=a1W390000045MxAEAU&p=a1V39000003y7dbEAA">Available Deployments
</a>
</li>
我嘗試了幾個版本,沒有成功:
-SNIP-
driver.find_element_by_name("logmein").click()
driver.find_element_by_linkText("Job Board").click()
driver.find_element_by_linkText("Available Deployments").click()
和
-SNIP-
driver.find_element_by_name("logmein").click()
driver.find_element_by_xpath(u'//a[text()="Job Board"]').click()
driver.find_element_by_xpath(u'//a[text()="Available Deployments"]').click()
我得到的錯誤通常如下:
selenium.common.exceptions.NoSuchElementException:消息:沒有這樣的元素:無法找到元素:{“method”:“xpath”,“selector”:“// a [text()=”Available Deployments“]”}
看起來元素的文本中有一個空格。 您必須使用normalize-space
來修剪文本。 請參閱下面的示例。
driver.find_element_by_xpath(u'//a[text()="Job Board"]').click()
waitForPresence = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.XPATH,'//a[normalize-space(text())="Available Deployments"]')))
driver.find_element_by_xpath('//a[normalize-space(text())="Available Deployments"]').click()
我用以下方法解決了這個問題:
driver.find_element_by_link_text("Job Board").click()
driver.find_element_by_link_text("Available Deployments").click()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.