Sorunum, web sayfamda bir onay kutusu öğesi bulmaktır. Seçilen dil olarak Eclipse, TestNG ve Java ile Selenium webdriver kullanıyorum.Bu web bağlantısını Selenium Webdriver'da nasıl bulurum?
onay kutusu elemanı incelenmesi aşağıdaki bana veriyor:
Ben dize Chrome tarayıcısında eleman kopyalanmış xpath aşağıdaki xpath kodunu kullanarak denedim<input type="checkbox" data-privid="13" data-priviligeeid="406">
. Kabul edilecek tırnak işaretleri için kaçış karakterlerini ekledim:
WebElement ChangeButton = driver.findElement(By.xpath("[@id=\"privs\"]/div[1]/div[2]/label/input"));
Ancak bunu yapmak ChangeButton'u boş bırakır. Bu da işe yaramadı
ArrayList<WebElement> inputs =(ArrayList<WebElement>)driver.findElements(By.tagName("input"));
if(inputs != null) {
for(WebElement checkbox : inputs) {
String attribute = checkbox.getAttribute("data-privid");
System.out.println(attribute);
....
}
}
nitelik herhangi bir değer alır geçmediği için:
Ben de ben bir özgül veri privid değeri bulana kadar bir dizi döngü çalıştı.Bunu nasıl çözebilirim?
DÜZENLEME: Bu çözüldü!
Çözümlerinizin ilk başta benim için çalışmadığı nedeni, bir sınıfa ait yöntemlerde gezinme ve ikinci bir sınıfta yakalanan web öğesi olmasından kaynaklanıyordu. Onları bir xml
dosyasında birleştirmeyi denedim, ancak herhangi bir nedenle konumlandırıcı sınıfı kendi işini yapmaya çalıştığında yanlış url
sonucuna vardım. Cevap verdiğiniz için herkese teşekkür ederim. css
konum belirleyicileri ile gittim ve güzel çalışıyor.
//input[@type='checkbox' and @data-privid='13']
XPath
altına
Bu ÇOK kullanışlı görünüyor. Maalesef henüz çalışmaya başlayamıyorum (hala element özelliklerine ulaşamıyorum), fakat bu yolu kesinlikle keşfedeceğim. Ben de testlerimin ne kadar kırılgan olabileceğinden dolayı xpath kullanmamayı tercih ederim. Teşekkürler Kim! –
Aynı şeyi XPath içinde de ifade edebilirsiniz: 'driver.findElement (By.xpath (" // input [@ type = 'checkbox'] [@ data-privid = '13 '] "));'. Neredeyse aynı, ama içinde daha fazla '/' ve '' karakterleri var. Özellikle birden fazla sınıf öznitelikleriyle uğraştığınızda, XPath, # $ & § içinde CSS seçicilerine kıyasla gerçek bir acı olabilir. XPath'in CSS'den daha iyi olduğunu düşündüğüm tek örnek, bir HTML etiketindeki metin içeriğinin girilmesi gerektiğidir. Bu, Selenium'un oldukça basit CSS uygulamasıyla gerçekleştirilemez. –