Selenium中的Ajax弹出窗口

时间:2012-10-11 11:01:22

标签: ajax testing selenium selenium-ide

无论如何使用

捕获/记录Light Box(Ajax)
  

Selenium IDE

1 个答案:

答案 0 :(得分:2)

不确定的是,Selenium IDE会以您期望的形式捕获/记录Light Box(Ajax)。 请参阅the screen below

Selenium IDE能够捕获导致LightBox出现的点击事实。但是很难记录从服务器获取所有AJAX所需的时间。 作为QA selenium自动化(在java上写)我更喜欢另一种方法。 你可以使用webDriverWait条件:

  WebDriverWait wait = new WebDriverWait(yourWebDriver, 5);
    wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//xpath_to_element")));

here

所述

或者您可以调用fluentWait机制:

public WebElement fluentWait(final By locator){
        Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
                .withTimeout(30, TimeUnit.SECONDS)
                .pollingEvery(5, TimeUnit.SECONDS)
                .ignoring(NoSuchElementException.class);

        WebElement foo = wait.until(
new Function<WebDriver, WebElement>() {
            public WebElement apply(WebDriver driver) {
                        return driver.findElement(locator);
                }
                }
);
                           return  foo;              }     ;

这种流畅的等待方法会返回您找到的可以操作的webElement。 的用法:

String xPathElement ="...blablab.....";
WebElement found  = fluentWait(By.xpath(xPathElement));
found.click();
//found.getText().trim():

希望这可以帮助你