Selenium'u kullanarak bazı testler yazmaya çalıştığım bir GWT uygulamasına sahibim.XPath kullanarak yalnızca görünen öğeleri nasıl seçerim?
Testler için sayfadaki öğeleri tanımlamak üzere XPath kullanıyorum. id
kullanmak, id
değerleri GWT tarafından otomatik olarak oluşturulduğu için çalışmaz ve değiştirilebilir. Ben şöyle onların etiketlerle düğmeleri bulabildiğim fark edince İşler iyi gitmeye başladım:
//button[.='OK']
Ancak, ben sorunları yaşamaya başladı birden testler başladı. Sorunun, Javascript tarafından oluşturulan ve gizli <div>
öğelerinde HTML'de kaldığı GWT uygulamasının tüm farklı "sayfalarının" olduğunu fark ettim. Bu, Selenium testlerimin bazen geçerli görünümde görünen düğme yerine gizli düğmelere tıklanması anlamına geliyordu. Firebug ile HTML incelenmesi
, GWT onların style
niteliğine display: none
ekleyerek <div>
unsurları gizler gibi görünüyor. Bu aşağıdaki gibi tüm gizli Tamam düğmelerini bulabilirsiniz anlamı:
//div[contains(@style,'display: none')]//button[.='OK']
Bu style
yılında display: none
sahip olarak gizlidir bir atası <div>
sahip düğmeler yani tüm gizli Tamam düğmelerini bulacaksınız.
Sorum şu: Yalnızca görünen OK düğmelerini bulmak için XPath'ı nasıl kullanırım? style
display: none
ile <div>
öğeye sahip olmayan düğmeleri nasıl bulabilirim?
bulacaksınız. Çok teşekkürler. –
Domuz ağacında saklanmayan başka bir div varsa son bir çalışma yapılmaz:
– Fortega@Fortega ve etrafındaki metinde söylenir –