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

Noksa

Регистрация: 23 мая 2018
Offline Активность: 29 дек 2018 05:43
-----

#169683 Переключение на окно подтверждения действия

Написано Noksa 26 ноября 2018 - 08:25

А вы уверены, что локатор правильный?

 

Лично я очень часто встречаю, что modal-content открывается в том же контексте, т.е. ничего не нужно свитчить, ни фрейм, ни окно.


  • 1


#169083 C# WebDriver Screenshots Extensions

Написано Noksa 23 октября 2018 - 07:23

Добрый день, коллеги.

Вдохновлённый когда-то ашотом от Яндекса я решил сделать нечто подобное для C#.
Для меня это жизненно необходимо - делать скриншот всей страницы, а не только видимой области.

 

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

 

Nuget пакет: https://www.nuget.or...hotsExtensions/
GitHub: https://github.com/N...hots.Extensions

 

Для использования достаточно вызвать новую перегрузку метода расширения:

driver.TakeScreenshot(IScreenshotStrategy strategy) 

Данный метод возвращает byte[].

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

 

Подробнее смотрите в вики на гитхабе.


  • 2


#168824 Автотесты без программирования.

Написано Noksa 08 октября 2018 - 10:43

Может человек пишет софт, который автоматически генерит классы на основе xml файлов :) 

 

И бомбанёт на всю страну как BolgenOS!


  • 1


#168759 Логирование неудачного выполнения тестов. Pytest, Selenium.

Написано Noksa 03 октября 2018 - 06:32

Какие-то вы вопросы странные задаёте.

 

Кому что надо - тот то и включает.

Нужны скрины? Добавяйте скрины.

Нужны логи консоли браузера? Добавляйте логи.

 

 

О чём вообще вопрос?

 

Каким опытом делиться?

 

Тема ради темы.


  • 2


#168658 Динамические ID

Написано Noksa 25 сентября 2018 - 10:42

Уникальные id/name это не идеальный мир, это правильный процесс разработки.
Не у всех конечно, но у важных по просьбе всегда должны делать.
А ещё лучше если есть доступ к исходникам. При правильном подходе он должен быть.
  • 1


#168583 Создается пустой allure report

Написано Noksa 19 сентября 2018 - 15:06

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

 

Это очень кривой, костыльный кейс, честно говоря.

 

Но можно в самой джобе в шагах копировать allure-results из  D:\testProject\Project\target\ в C:\Users\bravo\.jenkins\workspace\testProject\

и собсна в post уже указать директорию просто allure-results, и всё будет. 


  • 1


#168214 Как правильно сделать паузу gherkin

Написано Noksa 04 сентября 2018 - 12:22

Зачем вам нужна хардкодная пауза?
Ожидание пока что-то произойдёт? Так лучше ждать этого момента...
  • 2


#168077 Одинаковые страницы

Написано Noksa 31 августа 2018 - 05:07

 

Элементы, которые есть не только на одной странице - выносятся в отдельный класс, а потом путём композиции он добавляется на те страницы, где присутствует.

Спасибо за ответ! Может еще найдется одна две ссылки хороших с материалом по композиции?

 

 

https://metanit.com/...atterns/1.2.php

 

 

Применительно к АТ - если вы используете ленивую инициализация через рефлексию (PageFactory.InitElements()), то достаточно просто поле/проперти обозначить в классе.

 

 

Приведу свой пример:

 

Есть страница:

[PageTitle("Новости")]
    public class NewsPage : BasePage
    {
        #region Elements

        [FindBy(Id = "dpp")] [ElementTitle("Пункт выдачи")]
        private ATextLabel _pvz;

        #region Blocks

        public NavigationBlock NavigationBlock { get; set; }

        #endregion

        #endregion

        public override bool IsLoaded => _pvz.Exists();
    }

В ней пропертя NagivationBlock - и есть класс, в котором находятся элементы, которые представлены не только на этой странице.


  • 1


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

Написано Noksa 30 августа 2018 - 09:41

Подскажите пожалуйста, где можно прочитать инфу по настройке докера для автотестов 

 

 

Смотря что вы хотите.

Если хотите запускать автотесты через докер - нужен Selenoid. Если кластер большой - то ещё GGR.

 

 

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

 

1) Иметь виртуалку/физ. машину с докером (желательно сразу линуксовую)

2) В терминале написать команду docker run -p 8080:8080 jenkins/jenkins

 

Далее радоваться установленному дженкинсу и заходить на него через ип_машины:8080


  • 1


#168062 Одинаковые страницы

Написано Noksa 30 августа 2018 - 09:34

Элементы, которые есть не только на одной странице - выносятся в отдельный класс, а потом путём композиции он добавляется на те страницы, где присутствует.


  • 2


#167956 Как правильно писать cucumber file

Написано Noksa 23 августа 2018 - 12:23

Что-то вы какую-то дичь спрашиваете, если честно...

Если вы в этом совсем не разбираетесь, зачем в это влезать?

 

Чтобы избегать дублирования - его не надо создавать (КЭП).

@Given("^user is on the (.*) page$")
    public void onPage(String pageName) throws Throwable { 

Этого достаточно один раз, как общие шаги... 

 

И да, вот это 

throws Throwable { 

просто ужас.


  • 1


#167715 Не могу понять как сделать проверку с list

Написано Noksa 13 августа 2018 - 12:12

Наверное имелось в виду, что кукумбер в неумелых руках просто сам по себе замедлит разработку, ибо лишние слои, абстракции, че к чему и тд


  • 2


#167703 Не могу понять как сделать проверку с list

Написано Noksa 13 августа 2018 - 09:39

Вот я тоже не могу понять. 

Если это единственный человек в команде тестирования - и он не имеет опыта автоматизации - зачем он этим занимается?

 

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


  • 2


#167285 Поиск элемента с помощью xpath

Написано Noksa 19 июля 2018 - 05:41

compose = driver.find_element(By.XPATH, "//span[@class = 'mail-ComposeButton-Text' and text() = 'Написать']")
compose = driver.find_element(By.XPATH, "//span[@class = 'mail-ComposeButton-Text' and contains(text(), 'Написать')]")

Данные локаторы более подвержены поломке, нежели чем 

compose = driver.find_element(By.CSS_SELECTOR, ".mail-ComposeButton-Text")

Просто хотя бы потому, что текст может поменяться, либо поменяться язык, и локаторы сломаются. 

 

Так что привязываться к тексту стоит только в самом крайнем случае.


  • 1


#167248 Selenium IDE и вставка из буфера обмена в строку

Написано Noksa 17 июля 2018 - 04:50

Зачем вообще использовать буфер обмена в тестах?

В чем смысл?

Вы хотите протестировать, что в ОС буфер обмена работает? 


  • 1