Я пишу сценарии сценариев селена, используя отраслевой стандарт webdriver, перед тем, как взаимодействовать с элементами, я все же часто обнаруживаю, что мои тесты терпят неудачу, и, похоже, это связано с состоянием гонки.Что делать, если ждать элемента недостаточно?
Вот пример, который я был запущен в последнее время:
- Перейти к каталогу странице продукта
- применить фильтр
- Дождитесь фильтра, которая будет применяться
- Нажмите кнопку Сохранить на продукт, который загружается после подачи фильтра
Шаг № 4 работает только в том случае, если я помещаю Thread.Sleep() в f ront шага - с использованием webdriverwait недостаточно. Я предполагаю, что это связано с тем, что webdriverwait только ждет, пока элемент не будет присоединен к DOM, даже если соответствующее событие JavaScript не было добавлено в элемент.
Как вы обошли эту проблему? Существует ли промышленный стандарт для борьбы с этим состоянием гонки?
EDIT Это решение было устранено путем обновления до последней версии firefox. Всем спасибо!
Какая ошибка при удалении нитьного сна? Это случай, когда кнопка отключена во время применения фильтра и включена ли фильтра post post? – shri046
@ shri046 Кнопка сохранения загружается после применения фильтра. Когда я удаляю thread.sleep, ошибок нет. Selenium нажмет на кнопку сохранения.Проблема заключается в том, что ничего не происходит, когда селеновые клики (я предполагаю, что это происходит, потому что на момент нажатия кнопки кнопки javascript отсутствует кнопка, как только она загружается). Дайте мне знать, если я не объясню это хорошо. – GKS1
Это имеет смысл, но мой вопрос был больше по строкам, так как кнопка «серая» на короткий период, пока применяется фильтр. Другими словами, кнопка, прикрепленная к DOM до и после применения фильтра, и единственным отличием является включение/отключение кнопки во время применения фильтра. – shri046