【问题标题】:How can I have selenium (python) distinguish between similar links and click a link that changes?如何让 selenium (python) 区分相似链接并单击更改的链接?
【发布时间】:2013-06-05 19:09:29
【问题描述】:

我正在使用 selenium 和 python 来单击用户在看起来像这样的表单上输入的链接。

请链接您的 Facebook(例如 facebook.com/xxxxxx):

facebook.com/sampleuserinput

我需要一个仅单击用户提供的链接 (facebook.com/sampleuserinput) 而不是示例链接 (facebook.com/xxxxxx) 的 python 脚本。

这两个链接都在 1 个文本框中(相同的 xpath)。

【问题讨论】:

    标签: python selenium


    【解决方案1】:

    一个文本框中有两个链接?你能澄清或展示一些 HTML 吗?

    我建议您查看elem = driver.find_element_by_link_text("foo") 以通过链接文本获取锚元素。然后用elem.click()点击它。

    有各种各样的good documentation for selenium 以及各种语言的示例。

    【讨论】:

    • 是的。整个表单基本上是文本框中的可编辑模板。问题和答案都在一个文本框中。我正在考虑通过部分链接文本使用查找元素,但它们都以相同的东西开头(facebook.com/)。有什么方法可以告诉脚本查找以 facebook.com/ 开头但不是 facebook.com/xxxxxx 的链接?
    • 当然。你如何通过部分链接文本获取所有元素,然后使用get_attribute("href")get_attribute("innerHTML") 找到你真正想要的元素。
    • 我正在考虑使用 driver.find_element_by_partial_link_text("facebook.com/") 但这会给我示例链接 (facebook.com/xxxxxx),因为那个是第一个。是否可以包含一些内容来告诉脚本不要单击该链接,而是单击用户输入的那个?
    • 看,有一个find_elements_by_partial_link_text 方法会返回多个元素。在检查href 和/或innerHTML 属性是否包含您需要的内容后,您可以对其进行迭代并单击您需要的那个。
    • 我需要的链接总是在变化。我只需要写一些东西来隔离示例链接并点击另一个链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 2021-12-03
    • 1970-01-01
    • 2010-10-21
    相关资源
    最近更新 更多