문제

ID의 일부를 저장하고 나머지는 버리고 싶습니다. 예를 들어, 'element-12345'의 ID가있는 HTML 요소가 있습니다. 나는 '요소'를 버리고 '12345'를 유지하고 싶습니다. 이것을 어떻게 달성 할 수 있습니까?

다음과 같이 값을 캡처하고 반향 할 수 있습니다.

| storeAttribute | //pathToMyElement@id | myId |
| echo | ${!-myId-!} | |

테스트를 실행하면 다음과 같은 것을 얻습니다.

| storeAttribute | //pathToMyElement@id | myId |
| echo | ${myId} | element-12345 |

셀레늄 IDE와 함께 녹음하고 셀레늄 브리지 비품을 사용하여 테스트를 피트니스에 복사하고 있습니다. 문제는 테스트를 실행할 때마다 깨끗한 데이터베이스를 사용하고 테스트 전반에 걸쳐 캡처하고 사용해야하는 임의의 ID를 사용하여 클린 데이터베이스를 사용하는 것입니다.

도움이 되었습니까?

해결책

해결책은 JavaScript를 사용하는 것입니다 replace() 기능 storeEval:

| storeAttribute | //pathToMyElement@id                                   | elementID |
| storeEval      | '${elementID}'.replace("element-", "")                 | myID      |

이제 내가 에코한다면 myID 나는 단지 ID를 얻는다 :

| echo | ${myID} | 12345 |

다른 팁

/요소-( d+)/i

그것은 대시 후 숫자를 캡처하는 정규 표현입니다.

이 같은 ~할 것 같다 일하다:

| storeAttribute | fn:replace(//pathToMyElement@id,"^element-","") | myId |

REGEX를 수행하려면 XPath 2.0이 필요합니다. 어떤 버전의 셀레늄 구현이 확실하지 않습니다.

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