Mam aplikację GWT, dla której próbuję napisać kilka testów przy użyciu Selenium.Jak wybrać tylko widoczne elementy przy użyciu XPath?
Używam XPath do identyfikacji elementów na stronie do testów. Używanie id
nie zadziała, ponieważ wartości GWT są automatycznie generowane i mogą się zmieniać. Wszystko zaczęło się dobrze, kiedy zdałem sobie sprawę, udało mi się znaleźć przyciski, etykietach, co następuje:
//button[.='OK']
Jednak kiedy zacząłem działa wiele testów zacząłem mieć problemy. Zdałem sobie sprawę, że problem polegał na tym, że wszystkie różne "strony" aplikacji GWT raz wygenerowanej przez JavaScript pozostają w ukrytym w HTMLu ukrytym <div>
elementach. Oznaczało to, że moje selenowe testy czasami klikały ukryte przyciski zamiast przycisku widocznego w bieżącym widoku.
Badanie HTML z Firebug, wydaje się, że GWT ukrywa <div>
elementy dodając display: none
ich atrybutem style
. Oznacza to mogę znaleźć wszystkie ukryte przyciski OK następująco:
//div[contains(@style,'display: none')]//button[.='OK']
Pozwoli to znaleźć wszystkie ukryte przyciski OK, tj przycisków, które mają przodka <div>
który jest ukryty poprzez display: none
w style
.
Moje pytanie brzmi: w jaki sposób użyć XPath, aby znaleźć tylko widoczne przyciski OK? Jak znaleźć przyciski, które nie mają elementów nadrzędnych zw style
?
To wszystko. Wielkie dzięki. –
Ostatni nie działa, jeśli istnieje inny div w drzewie dom, który nie jest ukryty:
– Fortega@Fortega i mówi się w tekście wokół niego –