簡體   English   中英

硒webdriver模式對話框java

[英]selenium webdriver modal dialog java

我正在測試表單,當我不鍵入所需數據時,我的Web應用程序中出現了JavaScript警報,提示用戶輸入丟失的數據。 我無法使用Selenium處理此問題,因為當我部分填寫表格並嘗試提交時,出現異常

org.openqa.selenium.UnhandledAlertException: Modal dialog present

如果我捕獲到異常,則不會顯示webdriver中的警報。 是否有解決此問題的解決方案?我希望能夠提交表單並及時接收警報。 我正在將Java Mint,Firefox 18和Selenium 2.28.0與Java一起使用我在代碼中遵循以下最佳問候

somePage.fillName(sth); //only 1 of 2 required field are filled
somgePage.submit(); //here js alert is shown right after clicking submit
somePage.getCurrentAlert();
//here are code parts
public Alert getCurrentAlert(){
    return driver.switchTo().alert();
}
public AdminHome submit(){
        saveUrl();
        WebElement submit = driver.findElement(By.id("add_quiz_submit_button"));
        try{
            submit.click();
            if(urlChanged()){
                return new AdminHome(driver);
            }
        }
        catch(Exception e){
            e.printStackTrace();// exception 1
            return null;
        }
        return null;
    }
//Exception 1
org.openqa.selenium.UnhandledAlertException: Modal dialog present
//The test fails because of:
org.openqa.selenium.NoAlertPresentException: No alert is present (WARNING: The server did not provide any stacktrace information)

但是,如果我單擊手冊上的按預期方式提交測試工作。 提前致謝

您應在操作完成后立即處理警報,並且在處理警報之前不應執行任何其他操作。

例如你的代碼應該是

 try{
        submit.click();
        if (alertPresent())
            getCurrentAlert();
        if(urlChanged()){
            return new AdminHome(driver);
        }
    }

這將檢查警報,然后接受警報。 Webdriver的交互與我們使用瀏覽器手動交互的操作更為相似。 因此,單擊提交完成后,我們將能夠看到警報,除非接受或拒絕,否則無法采取任何措施。

維沙爾

這是因為在引發UnhandledAlertException時,驅動程序本身接受警報。 如果部分填寫了表格,如何提交?

如果有可能,只需捕獲該異常,然后在catch塊中編寫單擊“提交”按鈕的行。

使用Robot類(按Enter鍵)關閉模式對話框

 try {
        (new Robot()).keyPress(java.awt.event.KeyEvent.VK_ENTER);

         (new Robot()).keyRelease(java.awt.event.KeyEvent.VK_ENTER);
         } catch (AWTException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM