Для начала давайте познакомимся с языками программирования, поддерживающими автоматизированное тестирование.
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"))
Так что же лучше, селен или драматург?
В общем, оба хороши, и на обоих стоит хорошенько потренироваться
Вам это очень понадобится, если вы постоянно создаете что-то рутинное.
Наконец, спасибо, что прочитали