Для начала давайте познакомимся с языками программирования, поддерживающими автоматизированное тестирование.

1 - Питон

На самом деле, Python — один из самых простых и быстрых языков программирования для автоматизации тестирования, поэтому он поддерживает все фреймворки, о которых мы вскоре упомянем.

2 - JavaScript

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

3 — С#, Ruby и JAVA

Они тоже поддерживают, но кого это волнует?

Сейчас мы рассмотрим самые мощные фреймворки, которые используются при автоматическом тестировании.

Как вы видели, это селен, полная зависимость от него с точки зрения использования и наибольшая распространенность в этой области!
Имеем ли мы в виду сам селен? , конечно, нет

Есть много офисов, которые поддерживают эту структуру, например
необнаруженный chromedriver
Эта библиотека используется для веб-сайтов, которые не позволяют автоматизировать ее (например, Google).
Этот аддон очень поможет вам в создании вашей автоматизации с комфортом без бана
Вот пример

Монтаж

pip install undetected-chromedriver

or

python -m pip install undetected-chromedriver

простой способ (рекомендуется)

import undetected_chromedriver as uc
driver = uc.Chrome()
driver.get('https://yoursite.com')

У этих ребят на самом деле есть мощный продукт и ссылка на этот репозиторий, что заставляет меня протестировать их продукт. Убедитесь, что вы используете «чистый» IP для этого.

#
# STANDARD selenium Chromedriver
#
from selenium import webdriver
chrome = webdriver.Chrome()
chrome.get('https://datadome.co/customers-stories/toppreise-ends-web-scraping-and-content-theft-with-datadome/')
chrome.save_screenshot('datadome_regular_webdriver.png')
True   # it caused my ip to be flagged, unfortunately


#
# UNDETECTED chromedriver (headless,even)
#
import undetected_chromedriver as uc
options = uc.ChromeOptions()
options.headless=True
options.add_argument('--headless')
chrome = uc.Chrome(options=options)
chrome.get('https://datadome.co/customers-stories/toppreise-ends-web-scraping-and-content-theft-with-datadome/')
chrome.save_screenshot('datadome_undetected_webddriver.png')

Нужны дополнительные развлечения?

Перейти к полной документации

Мы не можем забыть драматурга как хорошую основу в этой области!

  • Однако он обеспечивает более широкий охват для кросс-браузерного тестирования, поддерживая Chrome, Firefox и WebKi, в то время как Puppeteer поддерживает только браузеры Chrome и Chromium.
  • Playwright совместим с Windows, Linux и macOS и может быть интегрирован с основными серверами CI/CD, такими как Jenkins, CircleCI, Azure Pipeline, TravisCI и т. д., в дополнение к средам тестирования, таким как Jest, Jasmine, Mocha.
  • Помимо JavaScript, Playwright также поддерживает несколько языков программирования, таких как Python, Java и .NET C#, предоставляя QA больше возможностей для написания тестовых сценариев.

Вот простой пример с использованием Python.

Начните с установки Playwright и запуска тестового примера, чтобы увидеть его в действии.

Установите Плагин Pytest:

pip install pytest-playwright

Установите необходимые браузеры:

playwright install
import re
from playwright.sync_api import Page, expect


def test_homepage_has_Playwright_in_title_and_get_started_link_linking_to_the_intro_page(page: Page):
    page.goto("https://playwright.dev/")

    # Expect a title "to contain" a substring.
    expect(page).to_have_title(re.compile("Playwright"))

    # create a locator
    get_started = page.get_by_role("link", name="Get started")

    # Expect an attribute "to be strictly equal" to the value.
    expect(get_started).to_have_attribute("href", "/docs/intro")

    # Click the get started link.
    get_started.click()

    # Expects the URL to contain intro.
    expect(page).to_have_url(re.compile(".*intro"))

Так что же лучше, селен или драматург?

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

Наконец, спасибо, что прочитали