2016-03-04 66 views
0
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("[email protected]"); 
     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中存在的警报。但是我在下面得到这种类型的错误。Selenium Webdriver - 没有警报存在错误

没有警告的情况下(警告:服务器未提供任何信息栈跟踪)

帮我解决这个错误......

+0

手动导航时是否显示警报?所以时间弹出将显示,但它可能不是JavaScript弹出。其简单的网页只有你可以找到该弹出的元素。请检查一次 –

+0

即使手动也没有显示警报。你能再检查一次吗? –

回答

0

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

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

  2. 否则,这是因为同步问题。这意味着只要页面加载完成,页面上就不会出现警报,并且可能会在一段时间后出现,因此您可以通过放置等待语句来尝试。 (TimeSpan.FromSeconds(5));其中,

0

在您与之交互之前,您应该等待警报的存在。

它在旧版驱动程序中效果更好,新需要它。

因此,首先等待警报出现,然后与其进行交互。

相关问题