ВЗ
Пишу на selenium + python, PageObjectModel
столкнулся с проблемой: что тесты падают рандомно если запускать все тесты в файле ( по одиночке все работает ). Оказалось что тесты отрабатывают быстрее чем сами элементы на странице...
Я искал об ожиданиях (явных и неявных) браузера. Сначала я делал вот так:
def click_on_element(self):
locator = self.driver.find_element(*LocatorsFile.locator_name)
locator.click()
Погуглил и нашел что в таких ситуациях нужно использовать WebDriverWait структуру.
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.XPATH, "//div”)))
но если я оставлю текущую архитектуру ( методы страницы в отдельном файле, локаторы в отдельном) и буду передавать переменную локатора вот так:
element = wait.until(EC.presence_of_element_located((my_element_locator)))
то падает ошибка что драйвер не может принять более 2 параметров на вход …
Есть ли какие-то варианты решения или даже примеры решения ???
P.S. поиск локатора в отдельном файле выглядит вот так:
my_element_locator =(By.XPATH, “//some xpath”)
P.P.S. некоторые методы у меня обернуты в
try except
структуру