我正在尝试关闭一个不允许我的代码进一步执行的弹出窗口。但我无法做到这一点。有一个弹出窗口,上面写着“免费5英镑的优惠券”。没有关闭。
以下是我的代码。请检查并建议。
public class Alldetails {
WebDriver driver;
public List<String> links1 = new ArrayList<String>();
@BeforeTest
public void beforeTest() {
System.setProperty("webdriver.chrome.driver", "C:\\Pankaj\\chromedriver.exe");
driver = new ChromeDriver();
// driver = new FirefoxDriver();
driver.manage().window().maximize();
}
@Test
public void f() {
driver.get("http://www.debenhams.com/kids/t-shirts-tops/boys");
driver.findElement(
By.xpath(".//*[@id='dijit__WidgetsInTemplateMixin_0']/div/div[1]/button"))
.click();
WebElement a = driver.findElement(By.className("products_count"));
String product_count = a.getText();
Integer x = Integer.valueOf(product_count);
System.out.println(x);
for (int i = 1; i < (x / 60) + 1; i++) {
driver.get("http://www.debenhams.com/kids/t-shirts-tops/boys" + "?pn=" + i);
List<WebElement> links = driver
.findElements(By.className("item_container").tagName("a"));
for (WebElement abcx : links) {
String ax = abcx.getAttribute("href");
// if(!links1.contains(ax))
links1.add(ax);
}
for (String b : links1) {
if (b.contains("/webapp/wcs/stores/servlet/prod"))
System.out.println(b);
}
}
}
@AfterTest
public void afterTest() {
}
}
答案 0 :(得分:0)
你需要做这样的事情:
//pass the already created userInterface object.
BookIO.readFile(id.getText(), this);
或
Alert alert = driver.switchTo().alert();
// Prints text and closes alert
System.out.println(alert.getText());
alert.accept();
根据您的需要。
修改强>
如果您的代码在警报出现之前运行,则可能会收到AlertNotPresentException。为了避免这种情况,你可以添加这样的延迟:
alert.dismiss();
如果警报出现,这将使Selenium等待15秒检查每100毫秒。这段代码不是我的,而是从这里获取的:Selenium how to get the alert Alert message