XPATH к элементу div через его child
//select[@name='category']/..
Элемент определяем так:
locator = (By.XPATH, "//select[@name='category']/..")
element = HtmlElement(driver, locator)
Предположим мы должны проверить видимоcть этого эелемента:
return hero_subtitle.is_element_visible()
Итого, функция будет выглядеть так:
@allure.step("Check that element is visible")
def is_element_visisble(driver):
locator = (By.XPATH, "//select[@name='category']/..")
element = HtmlElement(driver, locator)
return element.is_element_visible()
Описываем класс HtmlElement (лучше в отдельном файле и использовать его в разных тестах):
class HtmlElement:
def __init__(self, driver, locator):
self.driver = driver # type: WebDriver self.element_locator = locator
def is_element_visible(self, timeout=30):
wait = WebDriverWait(self.driver, timeout)
try:
wait.until(expected_conditions.visibility_of_element_located(self.element_locator))
except TimeoutException:
return False return True
ПРИМЕР 2
//a[text()='Sm___']/..//a[text()='Get Started']
Чтобы найти кнопку Get Started описываем сначала a с текстом "Sm...". (//a[text()='Sm___'])
Дальше переходим вверх к родительскому элементу (/..).
Спускаемся вниз к дочернему элементу с текстом 'Get Started' (//a[text()='Get Started'])
Комментариев нет:
Отправить комментарий