我有我的脚本来登录到一个站点。然后我需要点击包含在一个
<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>
Run Code Online (Sandbox Code Playgroud)
我试过几个版本,都没有成功:
-SNIP-
driver.find_element_by_name("logmein").click()
driver.find_element_by_linkText("Job Board").click()
driver.find_element_by_linkText("Available Deployments").click()
Run Code Online (Sandbox Code Playgroud)
和
-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()
Run Code Online (Sandbox Code Playgroud)
我得到的错误通常如下所示:
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()
Run Code Online (Sandbox Code Playgroud)
我用以下方法解决了这个问题:
driver.find_element_by_link_text("Job Board").click()
driver.find_element_by_link_text("Available Deployments").click()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9173 次 |
| 最近记录: |