我需要自动执行以下方案:
用户连接到网站,几分钟后,div会出现一个选项,可以单击按钮以扩展其会话或终止会话。如果用户选择延长她的会话,几分钟后,div将再次出现,具有相同的两个选项。
我首先需要扩展会话,当div再次出现时,我需要终止它。
我的机器上安装了IE 11,以下代码适用于FF,而不适用于IE。我不能让IE等待div来,并立即失败
“org.openqa.selenium.ElementNotVisibleException:无法单击元素(警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:900毫秒“
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); //Wait for waring (div) to come up
driver.findElement(By.id("ExtendSession")).click(); //click the 'Extend Session' button
new WebDriverWait(driver, 30).until
(ExpectedConditions.invisibilityOfElementLocated(By.id("ExtendSession"))); //wait for the 'Extend Session' button to disappear
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); //Wait for waring (div) to come up again
driver.findElement(By.id("EndSession")).click(); //click the 'ExtendSession' button
我该如何解决这个问题?
答案 0 :(得分:0)
尝试在单击按钮
之前刷新DOMdriver.navigate().refresh();
答案 1 :(得分:0)
我的整个问题的答案是什么IE挂起。我在帖子https://www.linkedin.com/groups/I-have-problem-in-my-961927.S.221787622
中找到了答案请参阅下面的更新代码
new WebDriverWait(driver, 30).until(
ExpectedConditions.elementToBeClickable(By.xpath(".//*[@id='divInactivWindow']"))
);
// driver.findElement(By.xpath(".//*[@id='ExtendSession']")).click(); --> I changed this line to the one below
driver.findElement(By.xpath(".//*[@id='ExtendSession']")).sendKeys("\n"); //*** main change
System.out.println("click Extend button once");
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
System.out.println("I did implicit wait");
new WebDriverWait(driver, 30).until(
ExpectedConditions.elementToBeClickable(By.xpath(".//*[@id='divInactivWindow']"))
);
driver.findElement(By.xpath(".//*[@id='EndSession']")).click();
driver.navigate().back();