【问题标题】:How can get 'href' link using selenium?如何使用 selenium 获取“href”链接?
【发布时间】:2019-06-17 06:00:14
【问题描述】:

我使用 selenium-python。我想做'电子邮件验证案例'。在测试用例中,我转发 'a href 链接。

是的。它的情况,只是使用find_element_by_partial_link_text 我知道。但我不明白在我的情况下不起作用。

这是案例

<tbody> 
<tr>
  <td style = "padding-bottom:40px;">
     <a href="(auth link)" target="blank" style="(some style)">Verify address</a>
  </td>
</tr>
</tbody>

我正在使用

  1. find_element_by_partial_link_text("Verify") / ("Verify Address") / ("address")
  2. find_element_by_css_selector("padding-bottom").get_attribute('href')

但有 make 'selenium.common.exceptions.NoSuchElementException' 例外:

试试&lt;br&gt; find_element_by_xpath(),但 auth-link 每次都在变化。

如何访问href链接并点击该链接?

【问题讨论】:

  • 分享您的网站链接。
  • 链接文本(Verify address) 是固定的,否则会像VerifyVerify AddressAddress 一样更改。
  • 等等。 “验证地址”不是链接。链接是href 属性中的任何内容。 Selenium 是否有某种按内容查找
  • @bharatk 不,我不能,因为该网站是“公司内网站”,所以链接是安全数据。
  • @MrLister 我引用 'selenium-python.readthedocs.io/…' 在此参考中,链接文本(“非链接”)可以指向,它可以在其他站点工作......只是不是这个问题案例。 :

标签: python selenium


【解决方案1】:

尝试引入webdriverwait。

我正在将link_text 更改为partial_link_text,只需确保UI 中应该只有一个Verify address 链接,否则代码不会抛出任何错误,它只会选择第一个元素。

wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, 'Verify address')))

点击只需使用:

element.click()

要获取 href,请使用:

element.get_attribute('href')

你可以关注这个官方Link了解更多。

你需要导入这些:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC 

如果您还有其他问题,请告诉我。

【讨论】:

  • 你需要导入这些:from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC
【解决方案2】:

您也可以尝试使用文本的 XPATH。尝试以下列表中的任何一个:

//a[text()='Verify address']
//a[contains(text(),'Verify address')]
//a[starts-with(text(),'Verify')]

找到元素后,您可以获取_attributes 或任何其他操作。

希望它能解决你的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 2020-09-04
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    相关资源
    最近更新 更多