等不和IE一起工作

时间:2015-03-11 21:53:40

标签: internet-explorer selenium wait

我需要自动执行以下方案:

用户连接到网站,几分钟后,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

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

尝试在单击按钮

之前刷新DOM
driver.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();