【问题标题】:Roboframework - Selenium - find all HREF containing specific textRobot Framework - Selenium - 查找所有包含特定文本的 HREF
【发布时间】:2021-06-11 09:44:32
【问题描述】:

我的目标是在包含特定文本的网页中找到所有 HREF 链接。 使用我在“查找元素”中测试过的 Chrome DevTools:

[href*='photo/?fbid']

它可以很好地返回它们。

当我尝试将它包含在机器人框架脚本中时:

 ${elements}=    Get WebElements     xpath://[href*='photo/?fbid']
    FOR    ${element}    IN    @{elements}
        Log    ${element.text}
        Log    ${element}
    END

我收到错误消息:

InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression //[href*='photo/?fbid'] because of the following error:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//[href*='photo/?fbid']' is not a valid XPath expression.
  (Session info: chrome=86.0.4240.111)

我尝试查看文档,但我不明白什么是正确的语法。 任何帮助表示赞赏。 谢谢

【问题讨论】:

    标签: selenium xpath selenium-chromedriver robotframework


    【解决方案1】:

    问题是您正在混合 xpath 和 CSS。您使用的选择器是 CSS 选择器,然后您将其作为 XPATH 传递。所以你可以通过两种方式做到这一点

    XPATH

    Get WebElements     xpath://a[contains(@href,'photo/?fbid')]
    

    CSS

    Get WebElements     css:a[href*='photo/?fbid']
    

    【讨论】:

    • 谢谢,当我得到所有元素时,我得到了这个字符串 => ${element} = 。您知道所有 Get WebElements 如何获取实际的 HTTP 链接吗?
    • 那是因为你打印了元素而不是打印它的 href 属性。看robotframework.org/Selenium2Library/…
    猜你喜欢
    • 1970-01-01
    • 2013-08-26
    • 2020-09-05
    • 2012-10-25
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多