2017-08-17 51 views
0

我正在嘗試使用Selenium webdriver測試電子商務網站。測試中的問題是,每當我嘗試在購物車中添加東西時,它都會彈出一個我嘗試使用警報處理的新聞信函窗口,但是我不能。無法處理彈出式新聞稿

有人可以幫助我。我將下面的截圖與代碼一起附上。

enter image description here

public class Ui { 

    public static void main(String[] args) { 
     System.setProperty("webdriver.gecko.driver","C:/New folder/geckodriver.exe"); 
     //First Iam going to initialize the webdriver by using Firefox driver// 
     WebDriver driver = new FirefoxDriver(); 
     driver.get("https://www.build.com/"); 
     driver.manage().window().maximize(); 
     driver.findElement(By.xpath(".//*[@id='search_txt']")).sendKeys("K-6626-6U "); 
     Actions enter = new Actions(driver); 
     enter.moveToElement(driver.findElement(By.xpath(".//*[@id='site-search']/div/button"))).click().build().perform(); 
    } 
} 
+0

你爲什麼不使用XPath來處理它。如果是iframe,請使用iframe代碼來處理它。 –

+0

@Hozefa,如果有任何答案對你有幫助,那麼請接受它所以這對別人有幫助 – NarendraR

回答

0

的第一件事是 - 它不是一個警告它的窗口彈出所以你需要找到的關閉按鈕,然後單擊下面的代碼

使用的相同:

public class Ui 
{ 
    public static void main(String[] args) 
    { 
     System.setProperty("webdriver.gecko.driver","C:/New folder/geckodriver.exe"); 
     //First Iam going to initialize the webdriver by using Firefox driver// 
     WebDriver driver = new FirefoxDriver(); 
     driver.get("https://www.build.com/"); 
     driver.manage().window().maximize(); 
     new WebDriverWait(driver, 60).until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath("//button[@class='close external-close']")))).click(); 
    } 
} 

在這裏你必須使用ExplicitWait,直到彈出窗口變得可見,然後必須執行點擊操作。如果你不會使用等待,那麼它會拋出ElementNotVisibleException

0

等待一段時間,然後點擊逃生

public static void main(String[] args) { 
    WebDriver driver = new FirefoxDriver(); 
    driver.get("https://www.build.com/"); 
    driver.manage().window().maximize(); 
    //give own time 
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
    Actions enter = new Actions(driver); 
    enter.sendKeys(Keys.ESCAPE).perform(); 
}