我在使用selenium关闭登录请求时遇到问题。
我正在进行一些自动测试的网站是不时请求登录。
这是已知问题,您所要做的就是关闭登录请求,我正在尝试为此编写Java脚本。我的这个小代码似乎什么也没做。
CREATE INDEX yourIdx ON likes (customer_id, created_at);
任何想法为什么?
答案 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);
感谢大家的帮助。