我创建了一个包含用户名和密码的登录自动化脚本。
我有一个 Excel 表,如果用户名和密码正确,结果将更新为通过。
但是如果用户名和密码不正确,就会出现一个 JavaScript 弹出框。
我无法处理那个确定按钮。
我已经尝试过这段代码。但我得到了例外
org.openqa.selenium.WebDriverException: findElement execution failed;
An open modal dialog blocked the operation
(WARNING: The server did not provide any stacktrace information).
如何处理打开的模态对话框?
Alert alert = driver.switchTo().alert();
System.out.println(alert.getText());
alert.accept();
这是我的代码
public class Read {
public WebDriver driver;
@BeforeMethod
public void launch() throws Exception {
System.setProperty("webdriver.chrome.driver",
"C:\\Chrome\\chromedriver_win_26.0.1383.0\\chromedriver.exe");
driver = new ChromeDriver();
}
@Test
public void testImportexport1() throws BiffException, IOException,
RowsExceededException, WriteException, InterruptedException {
FileInputStream fis = new FileInputStream("Data//Logindev.xls");
Workbook w = Workbook.getWorkbook(fis);
Sheet s = w.getSheet(0);
String a[][] = new String[s.getRows()][s.getColumns()];
FileOutputStream fos = new FileOutputStream("Data//Logindev_1.xls");
WritableWorkbook wwb = Workbook.createWorkbook(fos);
WritableSheet ws = wwb.createSheet("LoginResult", 0);
System.out.println("s.getRows() = " + s.getRows());
for (int i = 0; i < s.getRows(); i++) {
System.out.println("s.getColumns() = " + s.getColumns());
for (int j = 0; j < s.getColumns(); j++) {
a[i][j] = s.getCell(j, i).getContents();
Label l = new Label(j, i, a[i][j]);
Label l1 = new Label(2, 0, "Result");
ws.addCell(l);
ws.addCell(l1);
System.out.println("Labels Added!!!!!!!!!");
}
}
for (int i = 1; i < s.getRows(); i++) {
driver.get("any url");
driver.findElement(By.name("txtUserName")).sendKeys(
s.getCell(0, i).getContents());
driver.findElement(By.name("txtPwd")).sendKeys(
s.getCell(1, i).getContents());
driver.findElement(By.name("btnSignIn")).click();
Thread.sleep(15000);
if (driver.findElement(By.linkText("xyz")).isDisplayed()) {
System.out.println("Element is found");
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.findElement(
By.xpath("//*[@id='ctl00_headerContent_lnkLogOut']"))
.click();
Thread.sleep(2000);
Label l2 = new Label(2, i, "Pass");
ws.addCell(l2);
} else {
try {
System.out.println("Element Not Found");
Label l2 = new Label(2, i, "Fail");
ws.addCell(l2);
Alert alert = driver.switchTo().alert();
System.out.println(alert.getText());
alert.accept();
} catch (NoAlertPresentException e) {
e.printStackTrace();
}
}
}
Thread.sleep(2000);
wwb.write();
wwb.close();
}
}