2010-08-31 14 views
6

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

17
driver.findElement(By.id("updateButton")).click(); 

//pop up with id "updateButton" opens

Alert alert = driver.switchTo().alert(); 
//update is executed 
alert.accept(); 
+0

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

8

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.

+0

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

+0

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

2

C# kodu:

IAlert alert = driver.SwitchTo().Alert(); 
alert.Accept(); 
System.Threading.Thread.Sleep(milliseconds); 
1

Python kodu:

driver.switch_to_alert().accept() 

bakınız:

site paketleri/selenyum/webdriver/uzaktan/webdriver.py

site paketleri/selenyum/webdriver/ortak/alert.py

İlgili konular