Selenium Webdriver - 没有警报存在错误

时间:2016-03-04 09:06:12

标签: java selenium selenium-webdriver

public class Test1 {
    public static void main(String[] args) {
        String alertText = "";
        WebDriver driver = new FirefoxDriver();

        driver.manage().window().maximize(); 
        driver.get("https://gogiftz.com/default/");

        WebElement contact = driver.findElement(By.xpath(".//*[@id='root-wrapper']/div/div/div[3]/div/div[2]/div/div/div[1]/div/div/div[3]/div/div/ul/li[1]/a"));
        contact.click();

        driver.findElement(By.xpath(".//*[@id='telephone']")).sendKeys("04364249425");
        driver.findElement(By.xpath(".//*[@id='comment']")).sendKeys("aasdfghlkjhjghkj");
        driver.findElement(By.xpath(".//*[@id='name']")).sendKeys("abcdef");
        driver.findElement(By.xpath(".//*[@id='email']")).sendKeys("abcdef@gmail.com");
        driver.findElement(By.xpath(".//*[@id='contactForm']/div[2]/button")).submit();

        Alert alert = driver.switchTo().alert();
        alertText = alert.getText();
        System.out.println(alertText);
        alert.accept();
    }
}

我试图使用上面的代码在WebDriver中找到警报。但是我在下面会遇到这种类型的错误。

  

不存在警报(警告:服务器未提供任何堆栈跟踪信息)

帮我修复此错误...

2 个答案:

答案 0 :(得分:0)

下面提到的问题可能导致此异常

  1. 页面上没有警报,我猜您已经检查过了。如果没有,则重新访问代码并执行触发警报的操作。

  2. 否则,这是因为同步问题。这意味着,一旦页面加载完成,页面上就不会出现警报,并且可能会在一段时间后出现,所以你可以通过输入wait语句来试一试。

    driver.Manage()超时()ImplicitlyWait(TimeSpan.FromSeconds(5));

答案 1 :(得分:0)

在与之互动之前,您应该等待提醒。

它在老司机中效果更好,新要求。

首先等待警报出现,然后与之互动。