【问题标题】:Sikuli Java find a select option that contains specific textSikuli Java 查找包含特定文本的选择选项
【发布时间】:2013-07-11 02:26:04
【问题描述】:

我正在尝试使用 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),每次都会改变,所以我不知道这个文本会是什么。

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

所以需要像这样在选项部分做某种模式匹配或正则表达式:

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

【问题讨论】:

    标签: java xpath sikuli


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 太棒了!第一个答案正是我需要的!我无法弄清楚的部分是将句点放在 CONTAINS 作为第一个字符串,它将与找到的所有选项属性进行比较。仅供参考,value 属性也是随机生成的(我忘了提),所以这行不通。
    猜你喜欢
    • 1970-01-01
    • 2017-04-21
    • 2020-08-01
    • 1970-01-01
    • 2021-10-27
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    相关资源
    最近更新 更多