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

Фотография

Selenium Wait нет задержки


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

#1 Mevmix

Mevmix

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

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Evgen

Отправлено 02 апреля 2014 - 14:25

Всем доброго дня!!!

сразу скажу 

driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10)) и Thread.Sleep(5000) не покатят

приведу пример по сайту

ab.onliner.by

над выпадающими списками есть общее количество объявлений

вообщем в момент выбора мак цена и мин цена модель и тд

он изменяет  свой class="autoba-count" на class="autoba-count progress"

Вообщем если выбрать цена мин 22000 мак 28000

модель Iveco и в списке марка последнюю

 

и если делать это все без задержек, просто не успевает

 

пробовал 

С#

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IWebElement element =  wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("autoba-count progress")));
 
не успевает или не срабатывает
может кто поделиться своим мнение
буду благодарен
Спасибо

  • 0

#2 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 02 апреля 2014 - 14:28

ничего не понял, но можно попробовать ExpectedConditions.presenceOfElementLocated


  • 0

#3 Mevmix

Mevmix

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

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Evgen

Отправлено 02 апреля 2014 - 14:34

 ExpectedConditions.presenceOfElementLocated

не нахожу такого

смысл просто нужно пройти по первым 4 выпадающим спискам

 

driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5));

driver.FindElement(By.XPath("//select[@name='min-price']/option[@value='22000']")).Click();

driver.FindElement(By.XPath("//select[@name='max-price']/option[@value='28000']")).Click();
driver.FindElement(By.XPath("//select[@class='manufacture']/option[contains(text(), 'Iveco')]")).Click();
//ВОТ ТУТ НЕ СРАБАТЫВАЕТ
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
WebElement element =  wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("autoba-count progress")));            
driver.FindElement(By.XPath("//select[@class='model']/option[last()]")).Click();
driver.FindElement(By.XPath("//*[contains(@id, 'car')]//*[contains(text(), 'Iveco')]/../../a")).Click();
если поставить Thread.Sleep(5000), то все ок
а надо ждать пока не пройдет обновления количества объявлений

  • 0

#4 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 02 апреля 2014 - 14:35

Вы как проверяете свои запросы?

Ибо, xpath некорректен, было бы лучше использовать css запрос "div.autoba-count.progress" (wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("autoba-count progress"))); )

или, раз вам нравятся хпасы - "//div[@class="autoba-count progress"]"


  • 0

#5 Mevmix

Mevmix

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

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Evgen

Отправлено 02 апреля 2014 - 14:41

дел в том что autoba-count progress запись корректна, да с пробелом

после обновление кол-ва объявлений изменяется на autoba-count


  • 0

#6 Mevmix

Mevmix

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

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Evgen

Отправлено 02 апреля 2014 - 14:45

я понял совю ошибку

wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//div[@class='autoba-count']")));


  • 0


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

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