waitForCondition дает пропущенное;перед ошибкой утверждения - PullRequest
0 голосов
/ 02 декабря 2010

Я просмотрел все примеры и у меня все еще есть проблема с использованием waitForCondition.Вот мой код.

WebDriverBackedSelenium seleniumWD = new WebDriverBackedSelenium(driver, "http://www.x.com");

seleniumWD.waitForCondition("seleniumWD.isElementPresent(\"fullname\");", "5000");

Я получаю ошибку: seleniumWD не определен.Поэтому я изменил его на:

WebDriverBackedSelenium seleniumWD = new WebDriverBackedSelenium(driver, "http://www.x.com");

seleniumWD.waitForCondition("boolean ok = seleniumWD.isElementPresent(\"fullname\");", "5000");

И теперь я получаю сообщение об ошибке: отсутствует;до выписки

1 Ответ

1 голос
/ 07 декабря 2010

Похоже, вы используете объект Selenium JS из теста на основе Selenium 2 / WebDriver. Вместо использования WebDriverBackedSelenium вы должны использовать классы ExpectedCondition и Wait, предоставляемые WebDriver. В вашем случае, предполагая, что fullname - это идентификатор элемента, которого вы ждете, ваш код должен выглядеть следующим образом:

WebElement element;
ExpectedCondition<Boolean> e = new ExpectedCondition<Boolean>() {
    public Boolean apply(WebDriver d) {
        element = d.findElement(By.id("fullname"));
        return Boolean.TRUE;
    }
};

Wait<WebDriver> w = new WebDriverWait(driver, timeOutInSeconds);
w.until(e);

Это действительно большой кусок кода, поэтому вы должны рассмотреть возможность использования шаблона Page Objects , который является одним из лучших методов написания тестов Selenium. Пример страницы с вашим полем будет выглядеть примерно так:

public class MyPage {
    @FindBy(id="fullname")
    private WebElement fullName;

    public MyPage(WebDriver driver) {
        PageFactory.initElements(new AjaxElementLocatorFactory(driver, 15), this);
    }

    public void setFullName(String value) {
        fullName.clear();
        fullName.sendKeys(value);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...