如何在 selenium webdriver 中处理 Javascript Alert/pop up window
How to handle Javascript Alert/pop up window in selenium webdriver
我不确定 selenium webdriver 是否可以处理 Javascript alert/pop-up window.
我有这样的场景
1. 用户上传 xls 文件并点击上传按钮
2. Alert/Pop-up window 将显示。在 window
上单击 "OK"
我能够自动执行上述场景,但在运行脚本时会显示 Alert/pop-up window。
无论如何我们可以处理他们的解决方法javascript alert/pop-up window?
模拟一下。直接在UI后面调用javascript:
WebDriver driver = new AnyDriverYouWant();
if (driver instanceof JavascriptExecutor) {
((JavascriptExecutor)driver).executeScript("yourScript();");
}
切换到默认内容
接受后关闭提醒 "OK"
否则,您的提醒来自另一个 window,您必须切换到另一个
driver.switchTo().alert().accept();
driver.switchTo().alert().dismiss();
driver.switchTo().alert().defaultConent();
您也可以尝试等待警报出现然后接受它。
下面是代码(点击上传按钮后):
try{
//Wait 10 seconds till alert is present
WebDriverWait wait = new WebDriverWait(driver, 10);
Alert alert = wait.until(ExpectedConditions.alertIsPresent());
//Accepting alert.
alert.accept();
System.out.println("Accepted the alert successfully.");
}catch(Throwable e){
System.err.println("Error came while waiting for the alert popup. "+e.getMessage());
}
我们将与 Alert 接口一起使用的方法有四种:
void dismiss() – dismiss() 方法在弹出 window 出现时立即单击“取消”按钮。
void accept() – accept() 方法在弹出 window 出现时立即单击“确定”按钮。
String getText() – getText() 方法returns 显示在警告框上的文本。
void sendKeys(String stringToSend) – sendKeys() 方法将指定的字符串模式输入到警告框中。
if(isAlertPresent(ldriver)){
Alert alert = ldriver.switchTo().alert();
System.out.println(alert.getText());
alert.accept();
}
Alert是一个接口,有下面的抽象方法
void accept();
void dismiss();
String getText();
void sendKeys(String keysToSend);
new WebDriverWait(driver,10).
until(ExpectedConditions.alertIsPresent()).accept();
alertIsPresent() internally return the
driver.switchTo.alert(); then we don't have to write it explicitly
hope this is been helpful
我不确定 selenium webdriver 是否可以处理 Javascript alert/pop-up window.
我有这样的场景
1. 用户上传 xls 文件并点击上传按钮
2. Alert/Pop-up window 将显示。在 window
我能够自动执行上述场景,但在运行脚本时会显示 Alert/pop-up window。
无论如何我们可以处理他们的解决方法javascript alert/pop-up window?
模拟一下。直接在UI后面调用javascript:
WebDriver driver = new AnyDriverYouWant();
if (driver instanceof JavascriptExecutor) {
((JavascriptExecutor)driver).executeScript("yourScript();");
}
切换到默认内容 接受后关闭提醒 "OK" 否则,您的提醒来自另一个 window,您必须切换到另一个
driver.switchTo().alert().accept();
driver.switchTo().alert().dismiss();
driver.switchTo().alert().defaultConent();
您也可以尝试等待警报出现然后接受它。
下面是代码(点击上传按钮后):
try{
//Wait 10 seconds till alert is present
WebDriverWait wait = new WebDriverWait(driver, 10);
Alert alert = wait.until(ExpectedConditions.alertIsPresent());
//Accepting alert.
alert.accept();
System.out.println("Accepted the alert successfully.");
}catch(Throwable e){
System.err.println("Error came while waiting for the alert popup. "+e.getMessage());
}
我们将与 Alert 接口一起使用的方法有四种:
void dismiss() – dismiss() 方法在弹出 window 出现时立即单击“取消”按钮。
void accept() – accept() 方法在弹出 window 出现时立即单击“确定”按钮。
String getText() – getText() 方法returns 显示在警告框上的文本。
void sendKeys(String stringToSend) – sendKeys() 方法将指定的字符串模式输入到警告框中。
if(isAlertPresent(ldriver)){
Alert alert = ldriver.switchTo().alert();
System.out.println(alert.getText());
alert.accept();
}
Alert是一个接口,有下面的抽象方法
void accept();
void dismiss();
String getText();
void sendKeys(String keysToSend);
new WebDriverWait(driver,10).
until(ExpectedConditions.alertIsPresent()).accept();
alertIsPresent() internally return the
driver.switchTo.alert(); then we don't have to write it explicitly
hope this is been helpful