【问题标题】:using wildcard to select multiple element使用通配符选择多个元素
【发布时间】:2017-11-29 18:13:48
【问题描述】:

我在 html 中有几个输入。如何编写带有通配符的 xpath 查询来替换 name 属性中的数值以选择所有输入元素?我试过//div/input[contains(@name, "name")],它有效,但我更喜欢使用通配符。类似于//div/input[@name="models[.*.].name"]

html:

<div>
    <input type="text" name="models[1].name" value="">
    <input type="text" name="models[2].name" value="">
    <input type="text" name="models[3].name" value="">
    <input type="text" name="models[4].name" value="">
    <input type="text" name="models[5].name" value="">
    <input type="text" name="models[6].name" value="">
</div>

【问题讨论】:

标签: html selenium


【解决方案1】:

试试这个 CssSelector

input[name^='models'][name$='.name']

这将为您提供名称以模型开头并以 .name 结尾的所有输入

在 XPath 中还有一种方法可以做到这一点,通过使用

//input[starts-with(@name, 'models') and ends-with(@name, '.name')]

但这只有使用 XPath 2.0 的浏览器才支持,所以这将在 Chrome 中工作

另一种方法是使用与 Xpath 1.0 兼容的方式,这种方式不太可读

//input[starts-with(@name, 'models') and substring(@name, string-length(@name) - string-length('name') +1) = 'name']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 2014-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多