У меня проблема - я использую веб-драйвер selenium (firefox), чтобы открыть веб-страницу, щелкнуть несколько ссылок и т. д., а затем захватить скриншот.
Мой скрипт работает нормально из CLI, но при запуске через cronjob он не проходит первый тест find_element(). Мне нужно добавить отладку или что-то, что поможет мне понять, почему это не удается.
По сути, я должен щелкнуть якорь «Войти», прежде чем перейти на страницу входа. Конструкция элемента такова:
<a class="lnk" rel="nofollow" href="/login.jsp?destination=/secure/Dash.jspa">log in</a>
Я использую метод find_element By LINK_TEXT:
login = driver.find_element(By.LINK_TEXT, "log in").click()
Я немного новичок в Python, поэтому немного борюсь с языком...
A) Как сделать Я проверяю, что ссылка на самом деле подхватывается python? Должен ли я использовать блок try/catch?
B) Есть ли лучший/надежный способ найти элемент DOM, чем LINK_TEXT? Например. В JQuery вы можете использовать более конкретный селектор $('a.lnk:contains(log in)').do_something();
Я решил основную проблему, и это была просто проблема с пальцем - я вызывал скрипт с неверными параметрами - Простая ошибка.
Мне все же хотелось бы узнать, как проверить, существует ли элемент. Кроме того, пример/объяснение неявных/явных ожиданий вместо использования паршивого вызова time.sleep().
Ура, ns