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

Фотография

ImplicitWait не ждет больше 60 сек

ImplicitWait

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

#1 AnnaMisha

AnnaMisha

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

  • Members
  • Pip
  • 5 сообщений


Отправлено 04 апреля 2019 - 19:54

хочу ждать элеиента не 60 сек (defaultTimeOutForWait), а передаваемое значение, если передаю значение меньше 60 сек, все работет, как я ожидаю – Timed out через количество секунд, которое я передала,но вот если передаю значение больше 60сек, все равно Timed out после 60 сек. Код ниже:

 

protected TimeSpan defaultTimeOutForWait = TimeSpan.FromSeconds(60);

       

public bool ElementExists(By locator, TimeSpan timeOutInSeconds)

        {

            webDriver.Manage().Timeouts().ImplicitWait = timeOutInSeconds;

            bool result = false;

            try

            {

                result = webDriver.FindElements(locator).Count() > 0;

            }

            catch

            {

                return result;

            }

            webDriver.Manage().Timeouts().ImplicitWait = defaultTimeOutForWait;

            return result;

        }

 


  • 0

#2 AnnaMisha

AnnaMisha

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

  • Members
  • Pip
  • 5 сообщений


Отправлено 05 апреля 2019 - 01:42

update: также замечено, что при использовании указанного выше метода с timeout >60sec , когда падает тест, браузер не закрывается, несмотря на  наличие 

 [OneTimeTearDown]
        public static void ClassCleanup()
        {
               webDriver.Quit();
        }
 

Все другие тесты, где timeout не трогаю - закрывается, как я того и ожидаю.


  • 0

#3 checo

checo

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

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 05 апреля 2019 - 09:03

Возможно, это и правда дефект в драйвере или в браузере.

 

Но это совершенно неважно. Неявные ожидания по минуте никто не использует. Что у вас за софт такой, где каждый, абсолютно каждый элемент нужно ждать по минуте? С таким софтом просто невозможно работать.

 

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


  • 1

#4 TatyanaV

TatyanaV

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

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 05 апреля 2019 - 10:10

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


  • 0

#5 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 05 апреля 2019 - 11:16

 

 

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

наоборот, рекомендуется в случае разных "сложных" элементов, когда элементы кастомные или с фреймворков типа реакта, или когда лэйзи лоадинг применяется

 

например сначала ждём появления списка, а потом даём этому списку пол-секунды/секунду например чтобы "прогрузился" - и потом уже кликаем


  • 0

#6 TatyanaV

TatyanaV

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

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 05 апреля 2019 - 12:32

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

наоборот, рекомендуется в случае разных "сложных" элементов, когда элементы кастомные или с фреймворков типа реакта, или когда лэйзи лоадинг применяется

 

https://www.selenium...er_advanced.jsp

WARNING: Do not mix implicit and explicit waits. Doing so can cause unpredictable wait times. For example setting an implicit wait of 10 seconds and an explicit wait of 15 seconds, could cause a timeout to occur after 20 seconds.


  • 0


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

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