java - Selenium - 如何选择具有可变文本的元素

标签 java selenium

<div class="order-number">
<h3>"Order number: "<strong>123-123123</strong> </h3>
</div>

知道如何选择订单号吗?我使用 Selenium 2。我尝试过:

driver.findElement(By.xpath(".//*[matches(text(),'\\d+-\\d+']"));

但是它不起作用。 Xpath2 支持正则表达式吗?

订单号总是不同,但是XXX-XXXXXX的款式总是一样的。

最佳答案

另一种方法是通过 CSS 选择器进行搜索:

By.cssSelector(".order-number H3 STRONG")

如果页面结构发生变化,它会变得更加脆弱。

更好的解决方案(如果您能够更改页面代码)是将 ID 放在 <strong> 上。标记并使用 By.id 。与 XPath 或 CSS 选择器相比,这更快、更不脆弱且更具可读性。

关于java - Selenium - 如何选择具有可变文本的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43279672/

相关文章:

java - 如何在一个 .ear 文件中包含两个 .war 文件?

java - 在java中计算日期/时间差

java - 如何设置警报对话框打开直到状态更改

java - 如何将本地 .m2 存储库的所有 Artifact 发布到 jfrog 存储库

python - Selenium 更改语言浏览器 Chrome/Firefox

java.lang.NoClassDefFoundError : org/w3c/dom/ElementTraversal 错误

python - Selenium Chromedriver 添加 cookie - 无效域错误

java - 如何加快 Selenium 中的页面解析速度

python-3.x - 错误 : no DISPLAY environment variable specified

java - 即使lazy = true,集合也被急切地加载?