Thucydides. Переустановить значение таймаута


(Natalja Librante Lace) #1

Совсем новичковский вопрос...
Для нормального прохождения тестов в IExplorer необходимо переназначить значение в PageObject

  private long waitForTimeoutInMilliseconds = 5 * ONE_SECOND;

Как это сделать?
Все классы страниц у меня наследуются от MainPage. Я понимаю, что новое значение надо вставить где-то в конструктор, но не могу разобраться куда и как именно frowning

public abstract class MainPage extends PageObject {
    public MainPage (WebDriver driver) {
        super(driver);
                }

И правильно ли я понимаю, что если у меня в IE тесты валятся по таймауту (т.е. не находится нужный элемент на текущей странице или драйвер не дожидается пока загрузится следующая страница), то увеличение waitForTimeoutInMilliseconds мне должно помочь? В ФФ все эти же тесты проходят отлично.


(Александр Таранков) #2

правильно. Если проблема с поиском элемента именно в более медленном браузере, то увеличение таймаута ожидания поможет.

Вот прям в эту переменную и впишите значение 20 вместо 5:

private long waitForTimeoutInMilliseconds = 20 * ONE_SECOND;

Лучше вынести конфигурирование таймаута в конфиг файл к фреймворку. Чтобы иметь возможность менять значение таймаута без пересборки


(Natalja Librante Lace) #3

Не получается изменить значение в PageObject. Насколько я понимаю, мне надо где-то переписать это значение в своем методе. И я не совсем понимаю как именно это сделать.


(Александр Таранков) #4

тогда в классе PageObject (и потомках) должен быть метод setTimeout(seconds) или типа того, через который его можно установить


(Aleksey) #5

эта переменная приватная, и у вас не получится изменить ее значение напрямую из класса-наследника. Для этих целей есть публичный метод setWaitForTimeout(final long waitForTimeoutInMilliseconds), но как вам уже посоветовали выше, лучше подобного рода параметры задавать в конфигурационном файле.
Если я правильно понял вашу проблему, то в Thucydides есть параметр, который вам подойдет: webdriver.timeouts.implicitlywait (http://www.wakaleo.com/thucydides-one-page/thucydides.html#runningthucydides_tests_from_the_command_line)


(Natalja Librante Lace) #6

Я пока переопределила значение через метод setWaitForTimeout в MainPage, от которой у меня наследуются все остальные страницы.
Про конфигурацию я поняла, но так как с Thucydides я работаю одна и консультироваться мне кроме как на форуме и в офф-группе не с кем, я пока с ней не разбиралась, так как запускать тесты мне надо не все разом, а разобраться сначала с тэгированием и запуском тестов по тэгам... В общем, еще много с чем разбираться.