🪓
QAммунизм
  • 💬Предисловия
  • 📜Теория тестирования
    • Для чего проводится тестирование ПО?
    • Принципы тестирования
    • QC — Quality Control
    • QA — Quality Assurance
    • Верификация и валидация
    • Этапы тестирования
    • Стадии разработки ПО
    • Требования
    • Дефект (bug) и Отчёт о дефекте (bug report)
    • Severity vs Priority
    • Базовые типы задач
    • Тестовые среды
    • Основные фазы тестирования
    • Основные виды тестирования ПО
    • Тест-дизайн
    • Методы тестирования
      • Тестирование белого ящика
      • Тестирование серого ящика
      • Тестирование чёрного ящика
    • Тестовая документация
      • Тест план (Test Plan)
      • Чек-лист (check list)
      • Тестовый сценарий (test case)
  • 🦠Матрица компетенций QA Engineer
    • Грэйды QA
      • Trainee Manual QA Engineer (стажер)
      • Junior Manual QA Engineer (младший)
      • Pre-Middle Manual QA Engineer (почти средний)
      • Middle Manual QA Engineer (средний)
      • Upper-Middle Manual QA Engineer (продвинутый)
      • Senior Manual QA Engineer (ведущий)
    • Грэйды AQA
      • Trainee Automation QA Engineer (стажер)
      • Junior Automation QA Engineer (младший)
      • Pre-Middle Automation QA Engineer (почти средний)
      • Middle Automation QA Engineer (средний)
      • Upper-Middle Automation QA Engineer (продвинутый)
      • Senior Automation QA Engineer (ведущий)
    • Краткое содержание
  • 📑Паттерн описания тест-кейсов
    • Названия
    • Описание
    • Количество шагов
    • Ожидаемые результаты
  • 🦾Автоматизация тестирования
    • 🐍Python
      • 🧪PyTest
        • pytest.ini
      • 📗SeleniumBase
        • Установка
        • Конфигурации подключения к Selenoid
        • Распространенные методы
      • 📊Allure Python
        • Установка
        • Слушатель
        • Декораторы
          • Шаги(step)
          • Вложения(attach)
          • Ссылки(issue)
          • Описания(description)
          • Заголовки(title)
          • Строгость(Severity)
          • Epic
          • Title
        • Окружающая среда(Environment)
        • Маркеры(mark)
      • 🗺️ООП в Python во всех подробностях
        • Приватность свойств. Name Mangling (_name и __name)
        • Переменные (свойства / атрибуты) класса
        • Анотация типов
        • @staticmethod
        • @classmethod
        • @property
        • Кеширование результата вычисляемых свойств
        • Наследование
        • Определение одного родителя
        • Перегрузка
        • Множественное наследование
        • Mixins
        • Полиморфизм
        • super().__init__() - Инициализация из родительского класса
        • Хешированные объекты
        • Абстрактные классы
        • Абстрактный класс наследуется от абстрактного класса
        • __slots__ в классе и при наследовании
        • Композиция
        • Наследование vs Композиция
        • Дескрипторы (__get__(), __set__(), __del__())
        • No Data Descriptor
        • Data Descriptor
        • Слабые ссылки (weakref)
        • Метод __set_name__
    • 🐸JavaScript (В разработке)
      • 🃏Playwright (В разработке)
    • 🛰️Git: Основные команды
    • 🧊Selenoid - Allure server
      • Установка
    • 🐳Docker
      • Установите Docker Desktop в Windows
    • 🧾Паттерны проектирования автоматизированного тестирования
      • Как написать идеальный автотест: 25 принципов.
        • Тесты не так важны, как действия по результатам этих тестов
        • Ценность
        • Лучше ничего не делать, чем сделать flaky-тест
        • Доверие
        • Поделись знанием
        • Устрой дестрой
        • Думай иначе
        • Тесты должны запускаться автоматически
        • Тайна пирамиды
        • Из множества важного выбирай то, что проще
        • Нельзя протестировать всё
        • Используй скрытую силу
        • Принцип ААА
        • Не повторяйся
        • Хрупкость
        • Принцип двух ящиков
        • Тестируй без последствий
        • Упрощения
        • Красота
        • Параллельность
        • Скорость
        • Автотест — это фича
        • Автотест — это тест
        • Атомарность
        • Независимость
      • Паттерны
        • Page Object Model (POM)
    • 🧑‍🔧Принципы разработки ПО
      • SOLID в автоматизации тестирования
        • S — Single Responsibility Principle(Принцип единой ответственности)
        • O — Open/Closed Principle(Принцип открытости/закрытости)
        • L — Liskov Substitution Principle(Принцип замены Лискова)
        • I — Interface Segregation Principle(Принцип разделения интерфейса)
        • D — Dependency Inversion Principle(Принцип инверсии зависимостей)
      • KISS (Keep It Simple, Stupid)
      • DRY (Don’t Repeat Yourself)
      • YAGNI (You Aren’t Gonna Need It)
      • Бритва Оккама
      • Avoid Premature Optimization
  • 🎭Вопросы для собеседования
    • Junior
      • Теория тестирования
      • AQA
        • Программирование
        • Selenium
        • TestNG/JUnit(PYTHON)
        • Git
        • CI
      • Интернет
      • Компьютерные сети
      • Практические задания
    • Middle
      • Теория
      • AQA
        • Selenium
        • Тестовая инфраструктура
      • Интернет
      • Мобильный
      • Практические задания
    • Senior
      • Теория
      • Практические задания
    • Практические задания
  • 📊Оценка покрытие Тест-кейсами/UI-автотестами(Coverage)
    • Матрица трассировки требований(RTM)
    • Обратная связь от тестировщиков
    • Включение новых сценариев
    • Использование метрик покрытия
    • Анализ отчетов о выполнении тестов
    • Измерение покрытия кода
    • Определение целевых экранов
    • Рассмотрение покрытия по сценариям использования
    • Автоматизированные средства анализа кода
Powered by GitBook
On this page
  • Вот некоторые распространенные методы SeleniumBase, которые вы можете найти в тестах:
  • Переход на веб-страницу: (и соответствующие команды)
  • Щелчок:
  • Ввод текста:
  • Получение текста из элемента на странице:
  • Получение значения атрибута из элемента на странице:
  • Подтверждение существования элемента на странице в течение некоторого количества секунд:
  • Утверждение видимости элемента на странице в течение некоторого количества секунд:
  • Утверждение видимости текста внутри элемента на странице в течение некоторого количества секунд:
  • Утверждая что-либо:
  • Полезные условные операторы: (с творческими примерами в действии)

Was this helpful?

  1. Автоматизация тестирования
  2. Python
  3. SeleniumBase

Распространенные методы

Last updated 2 years ago

Was this helpful?

Вот некоторые распространенные методы SeleniumBase, которые вы можете найти в тестах:

Переход на веб-страницу: (и соответствующие команды)

self.open("https://xkcd.com/378/")  # This method opens the specified page.

self.go_back()  # This method navigates the browser to the previous page.

self.go_forward()  # This method navigates the browser forward in history.

self.refresh_page()  # This method reloads the current page.

self.get_current_url()  # This method returns the current page URL.

self.get_page_source()  # This method returns the current page source.

ProTip™: Вы можете использовать self.get_page_source()метод с find()командой Python для анализа HTML, чтобы найти что-то конкретное. (Для более сложного разбора см . .)

source = self.get_page_source()
head_open_tag = source.find('<head>')
head_close_tag = source.find('</head>', head_open_tag)
everything_inside_head = source[head_open_tag+len('<head>'):head_close_tag]

Щелчок:

Чтобы щелкнуть элемент на странице:

self.click("div#my_id")

ProTip™: В большинстве веб-браузеров вы можете щелкнуть правой кнопкой мыши страницу и выбрать Inspect Element, чтобы просмотреть сведения о селекторе CSS, которые вам понадобятся для создания собственных сценариев.

Ввод текста:

self.type(selector, text)# обновляет текст из указанного элемента с указанным значением. Исключение возникает, если элемент отсутствует или если текстовое поле недоступно для редактирования. Пример:

self.type("input#id_value", "2012")

Вы также можете использовать self.add_text()или команду WebDriver .send_keys(), но они не будут сначала очищать текстовое поле, если внутри уже есть текст. Если вы хотите ввести специальные клавиши, это тоже легко. Вот пример:

from selenium.webdriver.common.keys import Keys
self.find_element("textarea").send_keys(Keys.SPACE + Keys.BACK_SPACE + '\n')  # The backspace should cancel out the space, leaving you with the newline

Получение текста из элемента на странице:

text = self.get_text("header h2")

Получение значения атрибута из элемента на странице:

attribute = self.get_attribute("#comic img", "title")

Подтверждение существования элемента на странице в течение некоторого количества секунд:

self.wait_for_element_present("div.my_class", timeout=10)

(ПРИМЕЧАНИЕ. Вы также можете использовать: self.assert_element_present(ELEMENT))

Утверждение видимости элемента на странице в течение некоторого количества секунд:

self.wait_for_element_visible("a.my_class", timeout=5)

(ПРИМЕЧАНИЕ: краткие версии этого self.find_element(ELEMENT)и self.assert_element(ELEMENT). Версия find_element() возвращает элемент)

Поскольку строка выше возвращает элемент, вы можете комбинировать его с .click(), как показано ниже:

self.find_element("a.my_class", timeout=5).click()

# But you're better off using the following statement, which does the same thing
self.click("a.my_class")  # DO IT THIS WAY!

ProTip™: Вы можете использовать точки для обозначения имен классов (пример: div.class_name) в качестве упрощенной версии div[class="class_name"]в селекторе CSS.

Вы также можете использовать *=для поиска любого частичного значения в селекторе CSS, как показано ниже:

self.click('a[name*="partial_name"]')

Утверждение видимости текста внутри элемента на странице в течение некоторого количества секунд:

self.assert_text("Make it so!", "div#trek div.picard div.quotes")
self.assert_text("Tea. Earl Grey. Hot.", "div#trek div.picard div.quotes", timeout=3)

(ПРИМЕЧАНИЕ: self.find_text(TEXT, ELEMENT)а self.wait_for_text(TEXT, ELEMENT)также сделайте это. Для обратной совместимости старые имена методов были сохранены, но время ожидания по умолчанию может быть другим.)

Утверждая что-либо:

self.assert_true(myvar1 == something)

self.assert_equal(var1, var2)

Полезные условные операторы: (с творческими примерами в действии)

is_element_visible(selector) # элемент виден на странице

if self.is_element_visible('div#warning'):
    print("Red Alert: Something bad might be happening!")

is_element_present(selector) # элемент присутствует на странице

if self.is_element_present('div#top_secret img.tracking_cookie'):
    self.contact_cookie_monster()  # Not a real SeleniumBase method
else:
    current_url = self.get_current_url()
    self.contact_the_nsa(url=current_url, message="Dark Zone Found")  # Not a real SeleniumBase method

Другой пример:

def is_there_a_cloaked_klingon_ship_on_this_page():
    if self.is_element_present("div.ships div.klingon"):
        return not self.is_element_visible("div.ships div.klingon")
    return False

Полный список методов SeleniumBase см. в разделе

🦾
🐍
📗
пример BeautifulSoup
Обзор методов .