Selenium Web驱动程序按顺序启动Web页面

时间:2016-12-22 20:40:06

标签: java selenium

我们如何在硒中一个接一个地启动链接。我点击一个图标,它启动新页面30秒后页面消失然后我需要在主页中启动另一个图标。我如何在selenium web驱动程序中执行此操作?

这是我的xpath:

driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.findElement(By.xpath("//html/body/form/div[4]/div/div[3]/div/div/div/div[4]/table[2]/tbody/tr[2]/td[4]/span[2]")).click();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.findElement(By.xpath("//html/body/form/div[4]/div/div[3]/div/div/div/div[4]/table[2]/tbody/tr[3]/td[4]/span[2]")).click();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.findElement(By.xpath("//html/body/form/div[4]/div/div[3]/div/div/div/div[4]/table[2]/tbody/tr[4]/td[4]/span[2]")).click();

1 个答案:

答案 0 :(得分:0)

据我所知,你的帖子是你要点击一个图标,这会打开一个新窗口,新窗口会在30多秒后关闭,然后你需要点击下一个图标打开一个全新的窗口。如果是这种情况,请继续阅读。

不确定您是否正确使用隐式等待。如果不更改持续时间,则不必重复该命令。它设置为驱动程序的生命周期。此外,如果链接不可见,请使用明确的等待链接的可点击性。如果您尝试使用隐式等待作为计时器,那么您没有正确执行。它将仅等待直到找不到元素,并在时间间隔结束后出错。

使用自定义显式等待来等待新打开的窗口关闭。

(new WebDriverWait(driver, 60)).until(new ExpectedCondition<Boolean>() {
    public Boolean apply(WebDriver driver) {
       return driver.getWindowHandles().size() == 1;
    }
});