Sikuli Java找到包含特定文本的选择选项

时间:2013-07-10 18:00:29

标签: java xpath sikuli

我试图使用Java中的Sikuli从select语句中单击特定选项。

鉴于此选择声明:

<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']

1 个答案:

答案 0 :(得分:1)

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

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

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

"//select[@name='mySelect']/option[@value='ab']"