2013-07-10 2 views
0

Java에서 Sikuli를 사용하여 select 문에서 특정 옵션을 클릭하려고합니다.Sikuli Java가 특정 텍스트를 포함하는 선택 옵션을 찾습니다.

이 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

당신이 contains()를 사용할 수있는 텍스트의 일부의 값을 테스트합니다.

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

를하지만 내보기로는 값의 속성을 사용하는 것이 좋을 것이다 : 따라서 당신이 시도 할 수

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

AWESOME을! 첫 번째 대답은 내가 필요한 것입니다! 내가 알아 내지 못한 부분은 발견 된 모든 옵션 속성과 비교할 첫 번째 문자열로 CONTAINS에 마침표를 넣는 것입니다. 그리고 FYI value 속성도 무작위로 생성됩니다 (언급 한 것을 잊었습니다). 그렇게하지 않으면 효과가 없을 것입니다. – jsherk