WebDriver HTMLUnit проблемы с Ajax

Я хочу протестировать сайт с помощью selenium webdriver (java), но этот сайт содержит ajax, а HTMLUnit не видит содержимое ajax.

Есть ли обходной путь?

Пример:

WebDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_3_6);
//login into your account
this.login(driver);
//click on edit Profile Link into an ajax-loaded tab
driver.findElement(By.id("editProfile")).click();
//Result: org.openqa.selenium.NoSuchElementException 

person Krzys    schedule 11.04.2012    source источник
comment
По моему личному опыту, поддержка javascript в HTMLUnitDriver довольно плохая, а эмуляция еще хуже. Я перестал использовать его для регрессионных тестов, так как он вносит больше ошибок, чем может обнаружить :(   -  person Fermin Silva    schedule 11.04.2012


Ответы (1)


используйте условие ожидания перед взаимодействием с элементом, которое должно появиться после ответа ajax.

WebDriverWait wait = new WebDriverWait(webDriver, 5);
 wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("xpath_to_element")));

это заставляет webDriver ждать вашего элемента в течение 5 секунд. Этот вопрос задавался ранее.

person Pavel Zorin    schedule 11.04.2012
comment
Проблема не связана с самим WebDriver, она сосредоточена на HtmlUnitDriver с ajax... - person Krzys; 11.04.2012
comment
WebDriver — это интерфейс. HtmlUnitDriver и т. д. являются его реализациями. Работает так же. Не беспокойтесь об этом. - person Pavel Zorin; 11.04.2012