selenium python通过href文本查找链接并单击它

时间:2017-06-27 06:35:37

标签: python selenium

我有我的脚本登录网站。然后我需要点击

中包含的另一个链接

<a href> </a>

我尝试过多种方法但没有成功。我需要的链接&#34;可用的部署&#34;只有在单击名为&#34; Job Board&#34;。

的下拉框后才会出现

网站代码如下所示:

<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:消息:没有这样的元素:无法找到元素:{&#34;方法&#34;:&#34; xpath&#34;,&#34;选择器&#34;: &#34; // [文本()=&#34;可用部署&#34;]&#34;}

2 个答案:

答案 0 :(得分:4)

看起来元素的文本中有一个空格。 您必须使用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()

答案 1 :(得分:2)

我用以下方法解决了这个问题:

driver.find_element_by_link_text("Job Board").click()
driver.find_element_by_link_text("Available Deployments").click()