跳过等待网站计时器 selenium Python
Skip waiting for a website timer selenium Python
我在 Python ide 中使用 geckodriver 运行ning Selenium。
我尝试打开的网站有一个 30 秒的计时器,在这 30 秒后出现一个按钮,我点击它。
我想问的是:
我能以某种方式 ignore/skip/speed 延长等待时间吗?
现在我正在做的是:
driver = webdriver.Firefox()
driver.get("SITE_URL")
sleep(30)
driver.find_element_by_id("proceed").click()
这是非常低效的,因为每次我 运行 代码做一些测试我都需要等待。
提前致谢,Avi。
更新:
我还没有找到克服障碍的方法,但在我找到之前,我会努力专注于下一个可实现的进展:
<video class="jw-video jw-reset" disableremoteplayback="" webkit-playsinline="" playsinline="" preload="metadata" src="//SITE.SITE.SITE/SITE/480/213925.mp4?token=jbavPPLqNqkQT1SEUt4crg&time=1525458550" style="object-fit: fill;"></video>
(被审查网站的名称)
每页有一个video,所有videos都在class"jw-video jw-reset"下面
我在使用 class 查找元素时遇到了问题,所以我使用了:
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "video[class='jw-video jw-reset']")))
它有效,但我不知道如何 select 元素的 src...
根据您的代码试验,您可以删除 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 实例。一旦元素 visible 并且 启用这样你就可以点击它了。
我在 Python ide 中使用 geckodriver 运行ning Selenium。
我尝试打开的网站有一个 30 秒的计时器,在这 30 秒后出现一个按钮,我点击它。
我想问的是: 我能以某种方式 ignore/skip/speed 延长等待时间吗?
现在我正在做的是:
driver = webdriver.Firefox()
driver.get("SITE_URL")
sleep(30)
driver.find_element_by_id("proceed").click()
这是非常低效的,因为每次我 运行 代码做一些测试我都需要等待。
提前致谢,Avi。
更新: 我还没有找到克服障碍的方法,但在我找到之前,我会努力专注于下一个可实现的进展:
<video class="jw-video jw-reset" disableremoteplayback="" webkit-playsinline="" playsinline="" preload="metadata" src="//SITE.SITE.SITE/SITE/480/213925.mp4?token=jbavPPLqNqkQT1SEUt4crg&time=1525458550" style="object-fit: fill;"></video>
(被审查网站的名称)
每页有一个video,所有videos都在class"jw-video jw-reset"下面 我在使用 class 查找元素时遇到了问题,所以我使用了:
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "video[class='jw-video jw-reset']")))
它有效,但我不知道如何 select 元素的 src...
根据您的代码试验,您可以删除 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 实例。一旦元素 visible 并且 启用这样你就可以点击它了。