不稳定的测试硒

时间:2014-02-28 15:24:59

标签: java selenium xpath selenium-webdriver

我的时区下午好。

我开始使用Selenium来测试我的Web应用程序。我正在使用带有IEDriverServer.exe的WebDriver API。 OS - > Windows XP 主要问题是测试不稳定。有时它们运行,有时它们会抛出异常。 例如,这是测试不稳定的常见位置。 我必须打开一个新窗口并开始完成某些领域。

    driver.findElement(By.xpath("//input[@name='"+button+"' and @type='button']")).click();//BUTTON THAT OPENS THE NEW WINDOW
                    long initDate = System.currentTimeMillis();
                    while(driver.getWindowHandles().size() <= numberPopUps){
                        Thread.sleep(500);
                        //15 seconds waiting for the pop-up
                        if((System.currentTimeMillis() - initDate) > 15000){
                            throw new Exception("Timeout to open popup");
                        }
                    }
        for(String winHandle : driver.getWindowHandles()){
                    if(!winHandle.equals(mWindow)){
                        driver.switchTo().window(winHandle);
                        break;
                    }   
                }
        driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);//WAIT THAT THE PAGE COMPLETELY LOAD       

    wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@name='descricaoMov']")));//VERIFY IF THIS INPUT IS ON THE DOM

`driver.findElement(By.xpath("//input[@name='descricaoMov']")).sendKeys("TESTE SELENIUM");`//This is where sometimes the test throws exception saying that is unable to find this element

,我想问这怎么可能?

提前致谢 最好的问候

1 个答案:

答案 0 :(得分:2)

你在这里重复了你的努力。 wait.until行正好执行下一行对.sendKeys()的例外操作。试试这个:

WebElement descriaoMov = new WebDriverWait(driver, 10).until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@name='descricaoMov']")));
descriaoMov.sendKeys("TEST SELENIUM");

此外,CSS选择器在查找元素方面比XPath更好。我建议将上面的xpath部分更改为:

By.cssSelector("input[name='descriaoMov']")