2012-09-19 15 views
14

Chcę używać symboli wieloznacznych w moich atrybutach. Na przykład, jest to mój regularne XPath:Korzystanie z symboli wieloznacznych XPath w atrybutach w Selenium WebDriver

//input[@id='activation:j_idt84:voId:1']` 

Chcę wymienić numer j_idt asterisk ponieważ liczba jest dynamiczna. Czekam na coś takiego:

//input[@id='activation:*:voId:1'] 

nie wiem jak rozwiązać ten problem. Czy mój pomysł jest nawet możliwy?

Odpowiedz

24

Niestety w XPath nie ma ciągów znaków wieloznacznych. Możesz jednak użyć wielu filtrów i starts-with() do filtrowania takich rzeczy.

//input[starts-with(@id, 'activation:') and contains(@id, ':voId:1')] 

Również ta odpowiedź może być przydatna także: selenium: Is it possible to use the regexp in selenium locators

+0

Dzięki, działa w ten rozwiązanie doskonale! –

2

Ty może używaj sznurka dzikie karty wykorzystujące funkcję matches która jest dostępna w XPath 2.0:

//input[matches(@id, 'activation:.*:voId:1')] 
+0

Ten sposób nie działa w moim kodzie. Rozwiązanie complex857 działa. Ale wielkie dzięki! –

+2

Selenium [delegatów xpath do podstawowej przeglądarki] (http://code.google.com/p/selenium/issues/detail?id=3009), więc po ich wdrożeniu przeglądarki powinny zacząć działać. – complex857

Powiązane problemy