java - 当我在 Webdriver 中使用 Java 运行脚本时,我收到错误消息 "No alert is active"

标签 java webdriver selenium-webdriver

当我在 Webdriver 中使用 Java 运行脚本时,收到错误消息“没有警报处于 Activity 状态”。这是不一致的行为,它有时会出错,但不会出错。当我没有这个错误消息时,它会在其他一些地方失败。

注意:该脚本在我的机器上运行完美。

我已经用我的机器设置更改了另一台机器中的所有 IE 9 设置,从那时起我就收到了这个错误。以前,我使用“Modal Dialog Present”来获取错误消息。

请在下面找到我使用的代码:

//Entering data in the Account Information section
driver.findElement(By.name(OR.getProperty("AccName_Id"))).clear();
driver.findElement(By.name(OR.getProperty("AccName_Id"))).
sendKeys(AccName+"_"+Randnum);
driver.findElement(By.name(OR.getProperty("AccDBA_ID"))).sendKeys("Kumar_DBA");
driver.findElement(By.id(OR.getProperty("AccTax_ID"))).sendKeys(""+numberToSend);
driver.findElement(By.name(OR.getProperty("AccAddress_ID"))).sendKeys("124 - City  
Cross Roads");
driver.findElement(By.id(OR.getProperty("AccZip_ID"))).sendKeys("00501");
new Actions(driver).sendKeys(driver.findElement(By.id(OR.getProperty("AccZip_ID"))),   
"").perform();

//Entering data in the Main Contact Information section 
driver.findElement(By.name(OR.getProperty("AccFName_ID"))).sendKeys("Kumara");
driver.findElement(By.name(OR.getProperty("AccMName_ID"))).sendKeys("S");
driver.findElement(By.name(OR.getProperty("AccLName_ID"))).sendKeys("Swamy");
driver.findElement(By.id(OR.getProperty("AccOffNo_ID"))).sendKeys("1234567890");
new Actions(driver).sendKeys(driver.findElement(By.id(OR.getProperty("AccOffNo_ID"))), 
"").perform();
driver.findElement(By.id(OR.getProperty("AccCellNo_ID"))).sendKeys("0123456789");
new 
Actions(driver).sendKeys(driver.findElement(By.id(OR.getProperty("AccCellNo_ID"))),  
"").perform();
driver.findElement(By.id(OR.getProperty("AccFaxNo_ID"))).sendKeys("1234567890");
new Actions(driver).sendKeys(driver.findElement(By.id(OR.getProperty("AccFaxNo_ID"))), 
"").perform();
driver.findElement(By.name(OR.getProperty("AccEmail_ID"))).sendKeys("abc@abc.com")     ;
driver.findElement(By.id(OR.getProperty("save_ID"))).click();
driver.switchTo().alert().accept();
isAlertPresent();
Thread.sleep(15000);
driver.findElement(By.id(OR.getProperty("AccZip_ID"))).sendKeys("79081");
new Actions(driver).sendKeys(driver.findElement(By.id(OR.getProperty("AccZip_ID"))), 
"").perform();
Thread.sleep(8000L);
driver.findElement(By.id(OR.getProperty("save_ID"))).click();
driver.switchTo().alert().accept();
isAlertPresent();
Thread.sleep(30000);

请尽快帮助我解决这个问题。将不胜感激。

最佳答案

我认为您的网络驱动程序代码在警报呈现之前触发。我的建议是在点击操作之后放置wait for alert

试试这个代码:

    //Do some click action to render alert.
    //statement to wait for an alert.
    WebDriverWait wait = new WebDriverWait(driver,
            30);
    wait.until(ExpectedConditions.alertIsPresent());
   //accepting the alert
   driver.switchTo().alert().accept();

以上代码将等待 30 秒,并每 500 毫秒检查一次警报是否存在。如果出现警报,它将终止等待并执行下一步操作。

关于java - 当我在 Webdriver 中使用 Java 运行脚本时,我收到错误消息 "No alert is active",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14473860/

相关文章:

Python Selenium - 纯粹基于其基于主体元素偏移量的位置点击元素

java - 为什么在 Java 中我们必须写 Enum.Val 而在 switch 中只写 Val?

java - 如何将 Flux 从 Mono 内部的列表中取出?

Java应用程序生命周期

angularjs - Protractor 调试未启动,调试器监听端口 5858

python-3.x - cookie sqlite错误1555如何解决? ( python 和 Selenium )

java - Selenium Web 驱动程序 : findElement(By. 名称 ..... 和 headless 浏览器

java - Selenium 驱动程序无法加载某些页面的所有元素

java - Stanford 词性标注器在 Java 中的使用

Python Splinter (SeleniumHQ) 如何截取多个网页? [连接被拒绝]