setTimeout在python Selenium执行脚本中不起作用

时间:2017-04-05 06:08:48

标签: javascript python selenium

我试图暂停执行Selenium几秒钟等待Modal弹出窗口显示。 但是time.sleep(5)没有使用phantomJS(我听说PhantomJS不支持睡眠)。  所以我来了setTimeout。

driver.execute_script('setTimeout(function(){"scroll(0, 300);"}, 3600);') 

但即使在Chrome Selenium驱动程序中它也不起作用。

即使driver.execute_script('scroll(0, 300);')有效,我也不知道如何在selenium中执行setTimeout。

1 个答案:

答案 0 :(得分:0)

如果您需要满足某些特定条件,可以使用ExplicitWait + ExpectedConditions,例如:

from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

wait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "Specify css selector for your modal div")))
driver.execute_script('scroll(0, 300);')

* 您可以将您喜欢的任何选择器用作By.XPATHBy.ID

此代码应允许您等待(最多10秒),直到执行脚本

之前所需元素的可见性