При тестировании программного обеспечения репозиторий объектов — это центральное место, где тестовые сценарии могут получать доступ к элементам или объектам пользовательского интерфейса приложения и взаимодействовать с ними. Однако существуют сценарии, в которых использование репозитория объектов может оказаться нецелесообразным или нецелесообразным. В этой статье мы рассмотрим альтернативные методы разработки тестовых примеров, не полагаясь на репозиторий объектов. Мы предоставим примеры кода, иллюстрирующие реализацию каждого метода.
Метод 1: поиск элементов с помощью XPath
XPath — это язык, используемый для навигации по XML-документам, а также его можно использовать для поиска элементов в HTML. Вот пример использования XPath для поиска элемента кнопки на веб-странице с помощью Selenium:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.example.com")
button = driver.find_element_by_xpath("//button[@id='myButton']")
button.click()
Метод 2: поиск элементов с помощью селектора CSS
Селекторы CSS — еще один мощный способ поиска элементов в HTML. Вот пример использования селекторов CSS с Selenium:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.example.com")
button = driver.find_element_by_css_selector("button#myButton")
button.click()
Метод 3: поиск элементов по имени тега и атрибутам
Вы также можете найти элементы, используя их имя тега и атрибуты. Вот пример использования Selenium:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.example.com")
button = driver.find_element_by_tag_name("button")
if button.get_attribute("id") == "myButton":
button.click()
Метод 4: поиск элементов по тексту
Если вам нужно найти элемент по его видимому тексту, вы можете использовать методы xpathили css_selector, упомянутые ранее., но с помощью текстового запроса. Вот пример использования XPath:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.example.com")
button = driver.find_element_by_xpath("//button[contains(text(),'Click Me')]")
button.click()
Метод 5: поиск элементов по положению
В некоторых случаях вам может потребоваться найти элементы по их положению в структуре DOM. Вот пример использования XPath для поиска второй кнопки на странице:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.example.com")
button = driver.find_element_by_xpath("(//button)[2]")
button.click()
В этой статье мы рассмотрели несколько методов разработки тестовых примеров без использования репозитория объектов. Используя XPath, селекторы CSS, имена тегов с атрибутами, текстовые запросы и позиции элементов, тестировщики могут находить элементы в своих приложениях и взаимодействовать с ними. Эти методы обеспечивают гибкость и могут быть полезны в ситуациях, когда репозиторий объектов недоступен или неприменим.