watir-webdriver를 사용하여 화면의 일부 알려진 텍스트 (이 경우 "An Example"
) 옆에있는 "아래로"버튼을 클릭하려고합니다. 아래쪽 버튼을 클릭하면 텍스트 자체가 임의 길이의 목록으로 이동합니다. 텍스트가 목록에 표시되는 위치를 항상 알지 못하며 텍스트에 ID가 없거나 클릭 할 위치를 고유하게 식별하는 아래쪽 단추가 없습니다. 단추에는 클래스 ("rowDown down"
)가 첨부되어 있지만 여러 행의 텍스트가있을 수 있으므로 단추 클래스는 고유하지 않습니다.Ruby와 watir-webdriver를 사용하면 텍스트가 알려진 경우 요소의 XPath를 어떻게 얻을 수 있습니까?
고유 한 ID를 얻을 수없는 상황에서는 항상 XPath로 전환합니다. 이 경우
, 나는 더 구체적으로 내가 원하는 버튼의 XPath가div[1]/button[2]
로 끝나는 것, 내가 /div[2]
로 끝납니다 신경 텍스트와 div[1]
에서 내가 클릭합니다 버튼입니다의 XPath를 알고 문제는 watir-webdriver를 사용하여 텍스트에 대한 XPath를 얻는 방법입니다. (처리 할 수있는 전체 XPath의 예는 "//*[@id='sortOrder0']/tbody/tr[2]/td[1]/div[2]"
입니다.) 다른 방법으로는 신뢰할 수있는 방법으로 내가 알고있는 버튼에 도달 할 수 있습니까? 당신은 text()
를 사용하는 XPath 동안 노드의 텍스트를 확인할 수 있습니다
<div>
<button class="rowUp up"></button>
<br />
<button class="rowDown down"></button>
</div>
<div>
An Example
</div>
고마워, Justin. XPath와 비슷한 효과를 얻을 수 있습니다. 이 작업을 통해 필요한 작업을 수행 할 수 있는지 알아보기 위해 조금만 노력하겠습니다. 선호하는 구문에서 버튼은 부모 요소 안에 직접 있지 않고 div가 있고 버튼이 있습니다. 문제의 웹 페이지가 때로는 숨겨진 요소를 가지고 있기 때문에 다른 문제는 '예제'텍스트에서 곧바로 벗어납니다. 이 텍스트를 사용하면 대다수의 시간에 효과적이지만, 때때로 한 번에 하나의 와트가 혼란스러워집니다. – pjd
Watir 접근법을 사용하면 버튼이 div 내에있는 것이 좋습니다. Watir은 부모 내 어디에서나 단추를 찾습니다. xpath를 사용하는 것과 다를 바없는 텍스트 사용에 대한 우려를 잘 모르겠습니다. 그러나 아마도 그것을 사용하여 정규식을 해결할 것인가? –
아, 나는 단지 parent.button을 할 수 있다는 것을 몰랐다. 알아 둘만한! – pjd