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

Автоматизация функционального тестирования
онлайн, начало 13 декабря
Python для начинающих
онлайн, начало 11 декабря
Школа для начинающих тестировщиков
онлайн, начало 12 декабря
Школа Тест-Аналитика
онлайн, начало 18 декабря

TatyanaV

Регистрация: 18 июл 2012
Offline Активность: 29 окт 2019 09:23
*****

#172720 Автоматизация Selenide + TestNG

Написано TatyanaV 26 Июнь 2019 - 05:39

Я Selenide плохо знаю, конечно, но я не вижу в этом коде никаких намеков на инициализацию браузера. Может я просто не понимаю чего-то?

Где у Вас браузер инициализируется?


  • 1


#172714 Автоматизация Selenide + TestNG

Написано TatyanaV 25 Июнь 2019 - 13:16

Сложно сказать без кода, особенно - того места, где Вы браузер инициализируете.

Проблема не в xml - а в самом коде. 

Вы пытаетесь запустить свои тесты в три потока, но браузер, судя по ошибке, объявляете так, что тесты его только в одном потоке видят.


  • 1


#171052 Ожидаемый/Фактический результат

Написано TatyanaV 26 Февраль 2019 - 09:25

Сначала фактический (что же произошло в результате указанных шагов), потом ожидаемый (что должно было быть и почему).


  • 1


#171033 Protractor. Click if exists

Написано TatyanaV 25 Февраль 2019 - 13:35

Альтернативный вариант:

if (driver.findElements(<локатор первого элемента>).size() > 0) {

     <какие-нибудь ожидания, если нужно>

     driver.findElement(<локатор первого элемента>).click();

} else driver.findElement(<локатор второго элемента>).click();

 

п.с.: findElements эксепшенов не кидает, если ничего не нашел, просто возвращает пустой List, поэтому try/catch тут не требуется.


  • 1


#170504 Как узнать если объект на страничке, для определения дальнейших действ

Написано TatyanaV 18 Январь 2019 - 12:08

Два варианта:
1. findElementне падает с эксепшеном, даже если элементы с таким локатором не найдены - просто возвращает пустой список. Соответственно:
ArrayList<WebElement> selectUserOwners = driver.findElements(By.xpath("/html/body/div[6]/div[2]/div/form/div[1]/table/tbody/tr/td[2]/div[2]/div/div[4]/div/div/div[2]/a"));
if (selectUserOwners.size() > 0selectUserOwners.get(0).click();
 
2. Обернуть оба "элемента" в try { <поиск элемента и клик> } catch (NoSuchElementException e) {}

 

п.с.: локаторы - адские просто. Максимально нестабильные из всех, которые только могут придти в голову :).

п.п.с: если списки влияют друг на друга (выбираете значение в одном - обновляются значения в другом) - то надо бы добавить ожидания (ExpectedConditions).


  • 1


#168949 Мониторинг одной страницы с добавляющимся контентом

Написано TatyanaV 15 Октябрь 2018 - 08:21

Как вариант - сделать статический список с линками (например, назвать его alreadyChecked).

Проверили линк - добавили в alreadyChecked.

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

 

п.с.: Java и Python - это разные языки программирования. Если выбрали Java, то Python Вам при описанном выше раскладе - не нужен вообще.


  • 1


#168820 [Protractor] Условие по isPresent() в цикле

Написано TatyanaV 08 Октябрь 2018 - 09:45

Я бы прошла дебаггером прямо по шагам.

 

1. Так и задумано, что из изначального массива элементы при !result кладутся сразу в оба списка (и тот, что содержит элементы, которые уже есть, и в тот, где элементы, которые надо подождать)?

2. У Вас изначально два массива, перебор идет по длине allControlsToCheck, условие также по allControlsToCheck, а элементы добавляете в т.ч. из allСontrolsToEnable. Почему если allControlsToCheck[x] присутствует, то запомнить надо не только этот элемент, но и allСontrolsToEnable[x], хотя это скорее всего совершенно разные элементы? Какая тут связь?


  • 1


#168522 Сравнение инструментов для автоматизированного тестирования

Написано TatyanaV 17 Сентябрь 2018 - 10:05

Автор статьи - сотрудник KMS Technology, а те в свою очередь - разработчики Каталона. Вполне естесственно, что они своё творение нахваливают. Тем более, что оригинал статьи - на сайте Каталона. Было бы даже странно, если бы они раскритиковали его и стали нахваливать что-то другое.

 

Каталон неплохой ресурс для начинающих, либо не имеющих опыта разработки на каком-нибудь ЯП (т.к. позволяет до определенной степени сложности писать тесты вообще без ЯП). Юзерфрендли, но со своими тараканами. Тем более, что и код на ЯП там тоже вполне можно писать при желании.

Селениум без знания ЯП - никак, Каталон - распаковал и пошел тесты делать.

 

п.с.: справедливости ради, на чистом селениуме времени на тест с нуля действительно нужно будет больше, чем в Каталоне.

п.п.с.: пишу на селениуме, но и с Каталоном знакома на практике.


  • 1


#168461 В allure отчёт не попадают новые тесты

Написано TatyanaV 14 Сентябрь 2018 - 07:35

Отмена миссии, прошу прощения, ошибка была достаточно тупа) и не связана с технической частью

 

Ну так написали бы, в чем именно она заключалась. Вашу тему прекрасно будут находить поисковики и через год-другой. 

Вот так наткнется кто-то в поисках ответов, а вместо решения "Отмена миссии" и никакой инфы.


  • 2


#168184 Тесты запускаются и выполняются через Jenkins, но не запускается брауз

Написано TatyanaV 04 Сентябрь 2018 - 10:50

Попробуйте %JAVA_HOME%\bin; переместить в самое начало переменной PATH.


  • 1


#167559 Selenium Webdriver перестал видеть элементы

Написано TatyanaV 03 Август 2018 - 08:25

А можно полный текст ошибки, которая Вам выдаётся?

Желательно сначала добавить printStackTrace в кэтчи (чтобы выводился текст перехваченного исключения).

 

Еще вариант - запустите дебаггером, поставьте брекпоинт на "Actions wt0_2 = ..." и попробуйте в открытом браузере найти элемент по локатору "#container > div.main-content > div > div > div > div:nth-child(3) > span"


  • 1


#167155 Как описать страницу page object ?

Написано TatyanaV 13 Июль 2018 - 07:51

То, что Вы написали выше - читается как бессвязный поток сознания, если честно.

Вложений, о которых Вы упомянули - нет, все остальное - как отдельные, мало связанные друг с другом слова.

 

"если это получается" - что именно "получается"?

"у нас таблица" - у кого у нас и какая таблица?

"где всегда новая открытка" - что за "открытка"?

"так же как описать категорию" - какую ещё "категорию"?

"если она тоже меняется"  - в каком смысле?

 

...


  • 2


#167111 Как открыть ссылку в новой вкладке

Написано TatyanaV 12 Июль 2018 - 08:35

На том же stackoverflow, откуда видимо взят изначальный код = есть ссылка на багу самого хрома, о том, что Ctrl+t не работает.  

В баге ответ - "This should not work, web driver is intended to be used for testing web content, not the browser. They should create new tab programmatically via the web driver api instead. I would close this one as WontFix, but deferring it to you.".

Т.е. через Ctrl + T новая вкладка в ХромДрайвере не открывается, не должна и не будет.

 

А какая изначальная задача? 

Какой смысл у Вас в открывании ссылки в одной вкладке и тут же ссылки в другой вкладке?


  • 1


#167108 Как открыть ссылку в новой вкладке

Написано TatyanaV 12 Июль 2018 - 08:05

Проверьте импорты свои. Не совсем понимаю, отуда у Вас берётся com.sun.org.apache.xpath.internal.operations.String

Если выше было предположение сходу, то Set - это уже 100% проверенный вариант, который у меня в коде уже давно и прекрасно работает.


  • 1


#167105 Как открыть ссылку в новой вкладке

Написано TatyanaV 12 Июль 2018 - 07:42

 

Теоретически, Ctrl+T не только открывает новую вкладку в хроме, но и автоматом на неё переключается.

Т.е. можно попробовать сохранить windowHandle основного окна (чтобы потом вернуться к нему), нажать Ctrl+T и без переключения на новую вкладку (в коде) попробовать сразу перейти на нужную страницу.

Я не пробовала так, не знаю, сработает ли.

 

п.с.: попробуйте ArrayList<String> tabs = (ArrayList<String>) webDriver.getWindowHandles();

Вот я просто ввел эту строку и уже сразу ошибка (java: incompatible types: java.util.Set<java.lang.String> cannot be converted to java.util.ArrayList<com.sun.org.apache.xpath.internal.operations.String>) как ее убрать?

 

 

Ок, тогда просто Set<String> tabs webDriver.getWindowHandles();

getWindowHandles() возвращает Set<String>, поэтому проблем быть не должно (у меня в моем коде сделано именно через Set<String>. Тогда для переключения - надо сначала сохранить handle "текущего" окна, а потом удалить его из полученного Set'а (в нём останется только одно новое окно).


  • 1




Яндекс.Метрика
Реклама на портале