Bir uyarı kutusunu "OK" düğmesine tıklayarak nasıl iptal edebilirsiniz? WebDriver Google grubunda Simon'un bu özelliği eklediğini gördüm. Bunun desteklenip desteklenmediğinden emin değilim.WebDriver bir uyarı kutusunu reddediyor
cevap
driver.findElement(By.id("updateButton")).click();
//pop up with id "updateButton" opens
Alert alert = driver.switchTo().alert();
//update is executed
alert.accept();
issue 27 in the Google Code Issues List'a bakın. Tarayıcının uyarıyı geçersiz kılmayı JavascriptExecutor kullanın:
((JavascriptExecutor)driver).executeScript("window.alert = function(msg){};");
Bu onayı iletişim kutularını işlemek için benzer bir çözüm.
((JavascriptExecutor)driver).executeScript("window.confirm = function(msg){return true;};");
Bu oldukça popüler bir istektir, bu yüzden yakında uygulamaya geçirileceğini umuyorum. Bu yaklaşımların olumsuz tarafı, mesajdaki metni doğrulamanın kolay olmamasıdır. Bunu yapmak için Selenyum'a inmek isteyebilirsiniz.
denedim '((JavascriptExecutor) sürücü) .executeScript ("window.confirm = işlev (msg) {return true;};"); 'ancak şans yok. Kimsenin güvenilir bir çözümü yok gibi görünüyor. Umarım bunu yakında halledebilirler. Yine de teşekkürler. – zihaoyu
Sürücünüzün doğru sayfaya/çerçeveye başvurduğunu bir kez daha kontrol edin. Bunu başarıyla çalıştırdım, bu yüzden sayfanızla değil, kodla benzersiz bir şey olmalı. – pnewhook
C# kodu:
IAlert alert = driver.SwitchTo().Alert();
alert.Accept();
System.Threading.Thread.Sleep(milliseconds);
Python kodu:
driver.switch_to_alert().accept()
bakınız:
site paketleri/selenyum/webdriver/uzaktan/webdriver.py
site paketleri/selenyum/webdriver/ortak/alert.py
Bunu yapmanın en uygun yolu, özellikle de circa-2012 sonrası. Bunun neden sorunun cevabı olarak kontrol edilmediğini anlamıyorum, çünkü olması gerektiği gibi. – djangofan