Python - Selenium WebDriver - элемент проверки существует

У меня проблема - я использую веб-драйвер selenium (firefox), чтобы открыть веб-страницу, щелкнуть несколько ссылок и т. Д., А затем сделать снимок экрана.

Мой скрипт отлично работает из CLI, но при запуске через cronjob он не проходит первый тест find_element (). Мне нужно добавить некоторую отладку или что-то, чтобы помочь мне понять, почему это не помогает.

По сути, я должен нажать на якорь входа в систему, прежде чем перейти на страницу входа. Конструкция элемента:

<a class="lnk" rel="nofollow" href="/login.jsp?destination=/secure/Dash.jspa">log in</a>

Я использую метод find_element методом LINK_TEXT:

login = driver.find_element(By.LINK_TEXT, "log in").click()

Я немного похож на Python Noob, поэтому немного борюсь с языком ...

А) Как я могу проверить, что ссылка на самом деле перехватывается Python? Должен ли я использовать блок try / catch?

Б) Есть ли лучший / более надежный способ найти элемент DOM, чем с помощью LINK_TEXT? Например. В JQuery вы можете использовать более конкретный селектор $ ('a.lnk: contains (log in)'). Do_something ();

Я решил основную проблему, и это была просто проблема с пальцем - я вызывал скрипт с неверными параметрами - Простая ошибка.

Я все еще хотел бы несколько советов о том, как проверить, существует ли элемент. Кроме того, пример / объяснение неявных / явных Ожиданий вместо использования дрянного вызова time.sleep ().

Ура, нс

Ответы на вопрос(7)

Ваш ответ на вопрос