簡體   English   中英

如何關閉登錄請求窗口?

[英]How do I close login request window?

我在使用selenium關閉登錄請求時遇到問題。

我正在做一些自動測試的網站是不時請求登錄。

這是已知的問題,您所要做的就是關閉登錄請求,我正在嘗試為此編寫Java腳本。 我的這個小代碼似乎沒有做任何事情。

WebDriver webDriverInstance = handl.browser;
webDriverInstance.switchTo().alert().dismiss(); 
webDriverInstance.switchTo().defaultContent();

有什么想法嗎?

您可以做的是先檢查是否有彈出窗口

public boolean isAlertPresent() {
    try{
       WebDriverWait wait = new WebDriverWait(driver, 5);
       wait.until(ExpectedConditions.alertIsPresent());
       return true;
    }
    catch (NoAlertPresentException noAlert) {
      return false;
    }
    catch (TimeoutException timeOutEx){
      return false;
    }
}

如果它存在,那么你可以接受它

WebDriverWait wait = new WebDriverWait(driver, 10);      
Alert alert = wait.until(ExpectedConditions.alertIsPresent());
alert.accept();

要么

JavascriptExecutor為你工作。 在單擊調用警報的事件之前,請務必執行它。

((JavascriptExecutor) driver).executeScript("window.confirm = function(msg) { return true; }");

注意: - 點擊調用警報確認框的事件后不要使用它。 默認情況下,上面的代碼將確認框設置為true表示如果調用,則表示您接受/單擊該頁面上所有確認框中的確定。 如果要取消警報,請將flag更改為false

希望它能幫到你:)

似乎Webdriver的警報對我不起作用,因為登錄請求不會引發Javascript警報事件。 所以沒有什么可以檢測或切換到。

解決了這段代碼,它只是將ESCAPE密鑰發送到瀏覽器:

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ESCAPE);
robot.keyRelease(KeyEvent.VK_ESCAPE);

謝謝大家的幫助。

暫無
暫無

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

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