Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

При попытке нажать AJAX-ссылку выскакивает ошибка


(Dima Svetlov) #1

Здравствуйте, на одноклассниках при поиске групп, чтобы подгружать ссылки на группы есть ссылка “Показать больше”, не могу на неё никак кликнуть, в Selenium IDE срабатывает, а в Webdriver выдаёт ошибку, вот код, которым пытаюсь кликнуть:
if (isMoreGroups == true)
{
IWebElement ButtonMoreGroups = driver.FindElement(By.LinkText(“Показать ещё”));
//ButtonMoreGroups.sendKeys("");
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
js.ExecuteScript(“arguments[0].scrollIntoView();” , ButtonMoreGroups);
Thread.Sleep(3000);
ButtonMoreGroups.Click();
Thread.Sleep(3000);
}

Что не так делаю, кто-нибудь сталкивался?


(Dima Svetlov) #2

Сделал через
ExecuteAsyncScript(“arguments[0].click();” ,ButtonMoreGroups,"");
Теперь ошибку выдаёт:
Additional information: Timed out waiting for async script result after 7ms
Не знаю, что этой функции скормить, чтобы дальше выполнение шло:(((


(Dima Svetlov) #3

Кто знает, что за ошибка, у меня на каждом углу выскакивает:
Additional information: The HTTP request to the remote WebDriver server for URL http://localhost:7055/hub/session/249f6aa4-fd95-4bb6-ada9-b404dd44da44/element timed out after 60 seconds.


(Stan) #4

Либо добавь коллбэк в асинхронный вызов жс-а (жди какого-то ответа на странице, изменения в каком-то статусе чего-либо и тд), либо если это не надо, выполни этот клик синхронно с executeScript(). ExecuteAsyncScript нужен для вызова на странице асинхронных запросов и контроля его выполнения.
Вообще, тестируя ajax, старайся проверять выполнения запросов именно какими-то изменениями на странице/в жс-е, а не расставляя по всему коду слипы.