如何关闭登录请求窗口?

时间:2017-08-08 13:47:59

标签: java google-chrome selenium

我在使用selenium关闭登录请求时遇到问题。

我正在进行一些自动测试的网站是不时请求登录。

这是已知问题,您所要做的就是关闭登录请求,我正在尝试为此编写Java脚本。我的这个小代码似乎什么也没做。

CREATE INDEX yourIdx ON likes (customer_id, created_at);

任何想法为什么?

2 个答案:

答案 0 :(得分:2)

您可以做的是先检查是否有弹出窗口

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();

OR

JavascriptExecutor为你工作。在点击调用警报的事件之前,请务必执行它。

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

注意: - 点击调用警报确认框的事件后不要使用它。默认情况下,上面的代码将确认框设置为true表示如果调用,则表示您接受/单击该页面上所有确认框中的确定。如果要关闭警报,请将标记更改为false

希望它会对你有所帮助:)。

答案 1 :(得分:1)

似乎Webdriver的警报对我不起作用,因为登录请求不会引发Javascript警报事件。所以没有什么可以检测或切换到。

通过这段代码解决,只需将ESCAPE密钥发送到浏览器:

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

感谢大家的帮助。

相关问题