2016-03-04 70 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

在您與之交互之前,您應該等待警報的存在。

它在舊版驅動程序中效果更好,新需要它。

因此,首先等待警報出現,然後與其進行交互。

相關問題