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

Почему в некоторые инпуты значение то записыается, то нет?

webdriver
testng
java
Теги: #<Tag:0x00007f7b69f15540> #<Tag:0x00007f7b69f152c0> #<Tag:0x00007f7b69f14ff0>

#1

имею инпуты

@FindBy(xpath = "//table[contains(., 'Заголовок') and @class='af_inputText']//input")
    public WebElement header;

@FindBy(xpath = "//table[contains(., 'Номер заявки') and @class='af_inputText']//input")
    public WebElement numberReq;

Почему-то при прогоне теста, выполняя метод sendKeys этих инпутов, наблюдается, что они то заполняются, то не заполняются…
В чем может быть причина? В том, что метод sendKeys выполняется для еще не до конца загруженного элемента?
И если это так и надо подождать когда элемент загрузиться, то какой использовать ExpectedConditions, я юзаю ExpectedConditions.visibilityOf(element), но это не помогает.


(Roy Obenon) #2

Поставьте не явные ожидания


(Дмитрий Мирошник) #3

Попробуйте elementToBeClickable.


(Dmitriy Romanov) #4

Я бы попытался определить более точно причину:

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

У меня в практике был кейс, когда прекрасно работающий (локально и в гриде) солюшн выбирал “не те” опции с дробдауна на виртуальной машине win7 под виртуал боксом.
В дропдауне біло 2500 опций, и отрисовка не успевала и т.п. решилось
repeat
выбор
until (выбранная опция == желаемая)


#5

Оказывается, что нужно сфокусироваться на форме, которая содержит в себе эти инпуты. Без фокуса - эта форма до конца не прорисовывается\не загружается.
Сделал клик по форме, прежде чем заполнять инпуты - и все ОК.