簡體   English   中英

selenium python通過href文本查找鏈接並單擊它

[英]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&amp;p=a1V39000003y7e1EAA" role="button">Job Board <span class="caret"></span>
    </a>
<ul class="dropdown-menu" role="menu">

<li>
    <a href="portalPage?s=a1W390000045MxAEAU&amp;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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM