【问题标题】:xpath: find element with attribute AND contains?xpath:查找具有属性和包含的元素?
【发布时间】:2017-05-17 15:01:24
【问题描述】:

我正在编写 selenium 测试,我需要切换到一个没有 id 或名称并且父元素包含变量 id 的 iframe(所以没有帮助。此外,src 属性中也有变量数据,所以我不能像By.cssSelector("iframe[src='example']") 那样直接定位它。我需要一个以src 为目标的xpath 选择器,但也使用包含。我正在尝试学习如何在Chrome 的Copy XPath 之外构建xpaths,但我想不通一个出来。感谢您的帮助!这是 iframe html:

<iframe scrolling="auto" 
    src="/admin/catalog/manage_variants_in_product.jsp?productId=160502" 
    width="100%" height="100%" frameborder="no" 
    style="position:absolute; top:0px; left:0px;">
</iframe>

【问题讨论】:

    标签: selenium xpath


    【解决方案1】:

    “包含”CSS 选择器在这里可能会有所帮助:

    iframe[src*=manage_variants_in_product]
    

    仅供参考,还有^=$= 分别表示“开始于”和“结束于”。

    【讨论】:

    • 是的,就是这样!完美的!我环顾四周,发现 cssSelectors 中没有 contains,但我从未想过要考虑通配符。非常感谢!
    • 这个参考有很多很好的信息。 w3.org/TR/selectors/#selectors
    【解决方案2】:

    我建议学习构建 xpath 或 csspath 的更好方法是 Firepath Firefox 插件

    首先在您的 Firefox 浏览器中安装 Firebug,然后安装 Firepath。

    在那里,您将获得获取 xpath 或自行评估 xpath 构建的有效方法

    【讨论】:

    • Firebug 和其他工具不能创建高效的 XPath。这可能很容易,但最终结果并不好。
    • 我上次使用它是几年前的事了,但它似乎与开发工具中 Chrome 的内置 Copy XPath 几乎相同。这确实非常适合快速抓取,但如果您需要更复杂的东西,那就不行了。
    • @kroe761,你创建的 xpath 怎么样,必须检查天气是否正确?我正在使用 Firepath 来评估 xpath。你如何验证相同的?如果您为此使用其他工具,请告诉我。
    猜你喜欢
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    相关资源
    最近更新 更多