2017-08-17 117 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(); 
}