문제

내 요소의 xpath는 읽기가 매우 어려워지고 있습니다.

// div [@id = 'main_content']/div [2]/div [2]/div [2]/div [4]/table/tbody/tr [2]/td/form/fieldset/p [1 ]/입력

대부분의 사람들을 변수로 저장하고 나중에 다음과 같이 사용할 수 있다면 좋을 것입니다.

| AssertElementPresent | $ {myform}. /fieldset/p [1]/입력 |

이와 같은 것이 가능합니까? 내 테스트를 훨씬 쉽게 읽을 수 있습니다!

도움이 되었습니까?

해결책

진짜 대신 ID의 ID에 셀레늄 에스프레션을 고정해야합니다. 2 개월 후에, 아무도 XPath가 무엇을 가리키는 지에 대한 가장 희미한 아이디어를 얻지 못할 것입니다. 테스트를보다 쉽게하기 위해 ID를 요소에 일상적으로 추가합니다. 우리는 우리가 테스트 가능하게 만드는 특별한 방법으로 Java 코드를 작성한다는 것을 인정하는 법을 배웠으며 HTML에도 괜찮다고 생각합니다.

다른 팁

당신은 그냥 쓸 수 있습니다 :

store | //div[@id='main_content']/div[2]/div[2]/div[2]/div[4]/table/tbody/tr[2]/td/form | myForm
assertElementPresent | xpath=${myForm}/fieldset/p[1]/input

그러나 Krosenvold가 말했듯이 긴 Xpath는 매우 취약 할 수 있습니다. 코드의 가독성에 대해 우려하고 계단식을 변경할 수있는 한 파일의 모든 로케이터를 원한다면 UI 요소 맵을 사용하는 것을 고려할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top