我正在尝试使用Selenium webdriver测试一个电子商务网站。测试中的问题是,每当我试图在购物车中添加东西时,它都会弹出一个新闻信件窗口,我试图使用alert处理该窗口,但无法处理。
谁能帮帮我。我附上了下面的截图和代码。

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();
}
}发布于 2017-08-17 12:57:41
首先,这不是一个警报,而是一个窗口弹出窗口,因此您需要找到close按钮,然后单击
使用下面的代码进行同样的操作:
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。
发布于 2017-08-17 13:54:34
等待一段时间,然后单击escape
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();
}https://stackoverflow.com/questions/45725769
复制相似问题