Добрый день!
Есть несколько тестов к одной форме, которые используют следующий код:
def select_drop_down(context, text, id):
WebDriverWait(context.browser, TIME_FOR_WAIT).until(
EC.element_to_be_clickable((By.XPATH, '//div[@id = "%s"]/a' % id))
)
element = context.browser.find_element_by_xpath('//div[@id = "%s"]/a' % id)
scroll_element_into_view(context.browser, element)
context.browser.find_element_by_xpath('//div[@id = "%s"]/a' % id).click()
WebDriverWait(context.browser, TIME_FOR_WAIT).until(
EC.presence_of_element_located((By.XPATH, "//*[@id='select2-drop']/div/input"))
)
context.browser.find_element_by_xpath("//*[@id='select2-drop']/div/input").send_keys(text)
WebDriverWait(context.browser, TIME_FOR_WAIT).until(
EC.visibility_of_element_located((By.XPATH, '//*/li//*[contains(text(), "%s")]' % text))
)
context.browser.find_element_by_xpath('//*/li//*[contains(text(), "%s")]' % text).click()
Код выбирает элемент из выпадающего списка.
В некоторых тестах работает, в некоторых нет.
При этом если запустить тесты в которых код не работает отдельно -- тесты проходят.
Проблемное место:
context.browser.find_element_by_xpath("//*[@id='select2-drop']/div/input").send_keys(text)
WebDriverWait(context.browser, TIME_FOR_WAIT).until(
EC.visibility_of_element_located((By.XPATH, '//*/li//*[contains(text(), "%s")]' % text))
В этом месте иногда вываливается ошибка -- StaleElementReferenceException: Message: Element not found in the cache.
Почему это может происходить?
Спасибо.
P.S. Используется firefox 24