У меня проблема: я использую веб-драйвер selenium (firefox), чтобы открыть веб-страницу, щелкнуть несколько ссылок и т.д., а затем сделать снимок экрана.
My script отлично работает с 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, поэтому немного борюсь с языком...
A) Как проверить, действительно ли ссылка набирается python? Должен ли я использовать блок try/catch?
B) Есть ли лучший/более надежный способ найти элемент DOM, чем LINK_TEXT? Например. В JQuery вы можете использовать более специфический селектор $('a.lnk: contains (log in)'). Do_something();
Я решил основную проблему, и это была просто проблема с пальцем - я вызывал script с неправильными параметрами - Простая ошибка.
Мне все еще нравятся некоторые указатели на то, как проверить, существует ли элемент. Кроме того, пример/объяснение неявного/явного ожидания, вместо использования crappy time.sleep().
Приветствия, ns