2012-07-05 34 views
1

我使用Java語言的硒web驅動程序。當有一個彈出窗即兩個按鈕確定,取消,它可以很容易地與網絡驅動程序使用下面的代碼來處理:處理用許多按鈕彈出使用硒webdriver

Alert alert = driver.switchTo().alert(); 
alert.accept(); // or alert.dismiss(); depending upon the action u want to perform. 

但什麼時候有兩個以上的按鈕做的,也就是有3個彈出4個按鈕(例如,好吧,取消,再試一次,忽略/繼續),那麼我們該怎麼做?我們如何點擊我們想要的按鈕?

非常感謝您的幫助提前

回答

2

我們在談論的是JavaScript的對話彈出窗口。有alert(有一個確定按鈕),confirm(有確定/取消)和prompt(有一個輸入欄和確定)。而已。因此,您看到的對話框不是JavaScript對話框,並且不能由Selenium的Alert界面處理。

您可以處理這兩種中的一種:

  1. 一個自定義對話框像jQuery的dialog()(或類似的東西)。那是好消息!這不是真正的彈出窗口,這只是一個設計良好的覆蓋層,由正常的HTML組成,看起來像一個對話框。您應該能夠使用WebDriver的常用方式進行交互:使用您選擇的工具檢查元素,然後查找並單擊需要單擊的按鈕。
  2. 本地瀏覽器甚至操作系統的對話框(例如下載對話框)。這是壞消息,因爲WebDriver無法處理這些。而且,它們在瀏覽器/系統/語言設置上往往看起來不同,因此您需要檢測並處理每個案例。您的選項包括:
    • Robot類,它可以讓你「按」編程鍵盤(或點擊盲目),因此擺脫,比方說對話框上的任何內容,按Enter鍵
    • AutoIt。這是一個用於處理任何系統級自動化的Windows程序。
    • 或多或少。您可以指定您特別處理的對話框,我們可能會提出更好的解決方法。例如,可以完全避免下載對話框等。
+0

感謝您的信息 – Tom 2012-07-09 07:22:13

0

你只需要使用警報,本機瀏覽器彈出對話框打交道時,()。如果Web應用程序測試彈出HTML對話框,那麼您可以使用元素ID,xpath,CSS選擇器等選擇並單擊任何按鈕。

相關問題