0

我正在尝试使用 Java 中的 Sikuli 从选择语句中单击特定选项。

鉴于此选择语句:

<select name="mySelect">
  <option value="ab">AB 273xc Some Text</option>
  <option value="cd">CD i8df4 Some More Text</option>
  <option value="ef">EF q43th And Text Once More</option>
</select> 

如果我知道选项中包含的完整确切文本,则以下内容有效:

driver.findElement(By.xpath("//select[@name='mySelect']/option[.='CD i8df4 Some More Text']")).click();

问题是字符串中总是有随机文本(在这种情况下为 i8df4),它每次都会改变,所以我不知道这个文本会是什么。

所以我想点击最后包含文本“Some More Text”的选项。我看到有一个 CONTAINS 函数,但我不知道在这种情况下如何使用它(如果它甚至可以使用)。

所以需要在选项部分进行某种模式匹配或正则表达式,如下所示:

option[.='do pattern match here looking for Some More Text']
4

1 回答 1

1

要测试部分文本的值,您可以使用contains(). 因此你可以试试这个:

"//select[@name='mySelect']/option[contains(.,'Some Text')]"

但在我看来,最好使用 value 属性:

"//select[@name='mySelect']/option[@value='ab']"
于 2013-07-10T18:26:04.737 回答