0

Java で Sikuli を使用して、select ステートメントから特定のオプションをクリックしようとしています。

次の 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']
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 に答える