Перейти к содержимому

Фотография

Время ожидания WebDriwer

Selenium WebDriwer

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 Tishka

Tishka

    Постоянный участник

  • Members
  • PipPipPip
  • 211 сообщений
  • ФИО:Ахрамеев Антон

Отправлено 15 декабря 2014 - 07:30

Добрый день уважаемые форумчане. 

Подскажите пожалуйста:

driver.findElement(By.name("login")).sendKeys("login");
driver.findElement(By.name("password")).sendKeys("pfssword");
driver.findElement(By.name("yt0")).click();

Как заставить webdriver ожидать некоторое время после нажатия?

 

Заранее спасибо.

С уважением, Антон.

 


  • 0

#2 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 15 декабря 2014 - 16:07

Самый простой вариант (ожидание 1 секунда):

Thread.sleep(1000);

Вариант посложнее и правильнее, как тут скажут, ожидать какого-либо события...


  • 0

#3 IvanStawski

IvanStawski

    Новый участник

  • Members
  • Pip
  • 26 сообщений
  • ФИО:Ставский Иван Михайлович
  • Город:Санкт-Петербург

Отправлено 15 декабря 2014 - 16:23

 

Добрый день уважаемые форумчане. 

Подскажите пожалуйста:

driver.findElement(By.name("login")).sendKeys("login");
driver.findElement(By.name("password")).sendKeys("pfssword");
driver.findElement(By.name("yt0")).click();

Как заставить webdriver ожидать некоторое время после нажатия?

 

Заранее спасибо.

С уважением, Антон.

 

Настоятельно рекомендую не ожидать "Некоторое" время, а ждать появления/ исчезновения элемента на странице. Для этого можно использовать WebDriverWait


  • 0

#4 asolntsev

asolntsev

    Новый участник

  • Members
  • Pip
  • 64 сообщений
  • ФИО:Андрей Солнцев
  • Город:Таллинн

Отправлено 15 декабря 2014 - 17:37

Используйте библиотеку Selenide. С ней Вы можете просто написать $(".loading").should(disappear); или $("#greeting").shouldHave(text("hello, Vasja!")); - и она сама подождёт.
  • 0

#5 mazik7

mazik7

    Новый участник

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Мазик
  • Город:Красноярск

Отправлено 16 декабря 2014 - 02:14

driver.Timeouts().ImplicityWait(TimeSpan.FromSeconds(time))// time - double

 - ожидание загрузки страницы. Если во время загрузки страницы происходит несколько перенаправлений, то его использование безсмысленно.

Webdriver wait - несколько сложенее в использовании. С его помощью можно дожидаться появления элемента в DOM.

Webdriver wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(ExpectedConditions.ElementExists(By.XPath(xPath))); //xPath - string.

- Здесь driver в течении 10 секунд будет ждать появления элемента, по истечении - exception.

Until в С# позволяет кроме ExpectedConditions использовать лямбда-выражения. А вот по ним я ничего пояснить не смогу)) Ибо не освоил (Уж больно синтаксис не привычен)


  • 0

:smile:




Темы с аналогичным тегами Selenium, WebDriwer

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных