로봇 프레임 워크의 텍스트에 대한 로케이터를 가져 오는 방법이 있는지 알고 싶습니다. Selenium2Library와 함께 Robot Framework를 사용하고 있습니다.텍스트별로 위치 찾기를 찾으십니까?
시나리오 예 : 내 페이지에 "Hello"메시지가 있고 새 메시지가 나타날 때 해당 위치가 계속 변경된다고 가정합니다.이 "Hello"단어를 클릭하여 전체 메시지를 표시하려고합니다. 어떻게해야합니까? 도와주세요.
로봇 프레임 워크의 텍스트에 대한 로케이터를 가져 오는 방법이 있는지 알고 싶습니다. Selenium2Library와 함께 Robot Framework를 사용하고 있습니다.텍스트별로 위치 찾기를 찾으십니까?
시나리오 예 : 내 페이지에 "Hello"메시지가 있고 새 메시지가 나타날 때 해당 위치가 계속 변경된다고 가정합니다.이 "Hello"단어를 클릭하여 전체 메시지를 표시하려고합니다. 어떻게해야합니까? 도와주세요.
각도가 다른 웹 페이지로 인해 위치가 많이 달라졌 기 때문에 어떤 의미인지 알았습니다. ID는 페이지가로드 될 때마다 새로 생성 될 수 있으며 요소를 클릭하는 순서에 따라 변경 될 수 있습니다. 게다가 dom과 xpath 기반의 locator에도 영향을 줄 수 있습니다. 귀하의 질문에 대한 간단한 대답은 아니오입니다, 그것은 표준 셀레늄, 셀렌 2, ExtendedSelenium2, 또는 다른 표준 라이브러리 내에 존재하지 않습니다.
질문에 대한 매체 답변은 현재 가장 고급 인 Click Element by Text
맞춤 키워드로 해결되었습니다. 입력에 따라 xpath를 생성하고 추가 매개 변수없이 간단한 텍스트 검색으로 찾을 수 있다면 그것을 할 것입니다. 그것은 때로는 깔끔하고 인수 주입이 필요할 수도 있지만 일반적으로 매우 잘 작동하며 xpath가 원격으로 가능할 때 사용하기 쉽습니다.
Click Element by Text
# EXAMPLE USAGE
# Click Element by Text "text on the element" id="midlevellocationoftext" button
# NOTE: Does not account for extra spaces at the beginning or end, text must be exact
# NOTE: Allows for injections on purpose to allow user to be more exact with their location
[Arguments] ${text} ${location}=* ${elementtype}=*
Click Element xpath=//*[@${location}]//${elementtype}[text()=${text}]
긴 대답은 내가 더 나은 것으로 작업하고 있다는 것입니다. 지금까지 내가 아는 것이있다. 이를 수행하는 요소는 무효 상태에 존재합니다. JavaScript는 웹 페이지를 요소 목록으로 바꿀 수 있습니다. 해당 요소에 .innerHTML
으로 전화하여 텍스트를 얻을 수 있습니다. 나는 세부 사항을 해결하지 못했지만 솔직히 그것이 가능하다고 생각하고, 알아 낸 후에 코드는 다른 사람들이 볼 수 있도록 Code Review에 있습니다.
"Hello"에 ID를 추가 하시겠습니까? – user3012759
이 질문은 너무 애매합니다. "Hello"라는 라벨이있는 페이지를 여러 가지 방법으로 사용할 수 있으며 여러 가지 방법으로 라벨에 액세스 할 수 있습니다. 좀 더 구체적이어야합니다. 공부하고 xpath 또는 CSS 경로를 사용하려고 했습니까? –