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

Фотография

PAGE_LOAD_STRATEGY, "eager" - использование одного и того же э

selenium PAGE_LOAD_STRATEGY eager capabilities ExpectedConditions

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

#1 qaomega

qaomega

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

  • Members
  • Pip
  • 20 сообщений
  • ФИО:Кулакова Дарья Михайловна

Отправлено 10 февраля 2016 - 14:41

Всем привет!

 

Ситуация следующая: использую  capabilities.setCapability(CapabilityType.PAGE_LOAD_STRATEGY, "eager");

 

В одном классе у меня несколько тестов, идущих друг за другом, допустим a, b и с. На тестовом сайте имеется шапка, которая не меняется при переходе по страницам. 

 

тест a : кликнуть на заголовок в шапке "Заголвок1" и тд

тест b : кликнуть на заголовок в шапке "Заголвок2" и тд

тест c : кликнуть на заголовок в шапке "Заголвок3" и тд

 

В результате первый тест проходит а следующие нет. Точнее клик по заголовку происходит, но перехода нет. Получается ошибка: не найден элемент страницы, на которую переходим.

 

Как я понимаю, это происходит потому что селениум уже перед тестом заранее видит элементы шапки, и что-то не успевает сделать. (Если ставить перед кликом по шапке Thread.sleep(3000); - всё ок, ошибки нет).

 

А так, для ожидания элементов, я использую неявные ожидания. 

 public void waitForElementPresent( By element) { // ждать появления элемента  
 webDriver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
 WebDriverWait wait = new WebDriverWait(webDriver, 20);
 wait.until(ExpectedConditions.presenceOfElementLocated(element)); 
 webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 
} 


 public void waitForElementVisible(  By element) { // ждать видимости элемента  
 webDriver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
 WebDriverWait wait = new WebDriverWait(webDriver, 20);
 wait.until(ExpectedConditions.visibilityOfElementLocated(element)); 
 webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 
} 

Как избежать такой ситуации?

 


  • 0

#2 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 895 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 11 февраля 2016 - 07:59

    Ситуация следующая: использую  capabilities.setCapability(CapabilityType.PAGE_LOAD_STRATEGY, "eager");

 


А без этой строчки будет работать ?

По поводу eager

Когда ты ставишь PAGE_LOAD_STRATEGY в Eager, это значит, что страница почти загрузилась, но есть вещи которые подгружаются. Т.е. это надо очень осторожно использовать.

Отличная статья:

 

http://barancev.gith...-loading-pages/

 


  • 0

#3 qaomega

qaomega

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

  • Members
  • Pip
  • 20 сообщений
  • ФИО:Кулакова Дарья Михайловна

Отправлено 11 февраля 2016 - 11:04

 

    Ситуация следующая: использую  capabilities.setCapability(CapabilityType.PAGE_LOAD_STRATEGY, "eager");

 

А без этой строчки будет работать ?
 

Да, без этой строчки всё работает.

 

 

 

 

Отличная статья:

 

http://barancev.gith...-loading-pages/

 

 

 Я из этой статьи как раз и узнал об этой прекрасной возможности (сайт ну очень долго загружается)


  • 0

#4 BabyRoot

BabyRoot

    Специалист

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


Отправлено 11 февраля 2016 - 11:08

Может, на время отключить графику?

для FF - profile.setPreference("permissions.default.image", 2);


  • 0



Темы с аналогичным тегами selenium, PAGE_LOAD_STRATEGY, eager, capabilities, ExpectedConditions

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

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