Пропустить ожидание на сайте таймера селена Python - PullRequest
0 голосов
/ 04 мая 2018

Я использую Selenium в Python ide с помощью geckodriver.

У сайта, который я пытаюсь открыть, есть таймер 30 секунд, после которого через 30 секунд появляется кнопка, и я посылаю на нее щелчок.

Я спрашиваю следующее: Можно ли как-то игнорировать / пропустить / ускорить время ожидания?

Сейчас я делаю следующее:

driver = webdriver.Firefox()
driver.get("SITE_URL")
sleep(30)
driver.find_element_by_id("proceed").click()

Что очень неэффективно, потому что каждый раз, когда я запускаю код для выполнения некоторых тестов, мне нужно ждать.

Заранее спасибо, Ави.

UPDATE: Я не нашел способ преодолеть препятствие, но пока я не пытаюсь сосредоточиться на следующем достижимом прогрессе:

<video class="jw-video jw-reset" disableremoteplayback="" webkit-playsinline="" playsinline="" preload="metadata" src="//SITE.SITE.SITE/SITE/480/213925.mp4?token=jbavPPLqNqkQT1SEUt4crg&amp;time=1525458550" style="object-fit: fill;"></video>

(название цензурированного сайта)

На каждой странице есть видео, все видео находятся под классом "jw-video jw-reset" У меня были проблемы с использованием элемента поиска по классу, поэтому я использовал:

WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "video[class='jw-video jw-reset']")))

Это работает, но я не могу понять, как выбрать src элемента ...

1 Ответ

0 голосов
/ 04 мая 2018

В соответствии с пробной версией кода вы можете удалить time.sleep(30) и вызвать WebDriverWait , чтобы элемент можно было нажимать следующим образом:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
# lines of code
WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.ID, "proceed"))).click()

Примечание : Настройте экземпляр WebDriverWait с максимальным ограничением времени в соответствии с вашим вариантом использования. expected_conditions метод element_to_be_clickable() вернет WebElement , как только элемент станет видимым и включенным , так что вы сможете щелкнуть по нему.

...