【发布时间】:2016-01-05 15:03:51
【问题描述】:
有些页面加载速度很慢,因此我需要指定一些页面加载超时时间。例如 60 秒后加载过程将被中断。
如何在我的 Java 应用程序中为 Selenium FirefoxDriver 指定页面加载超时?
【问题讨论】:
标签: java sockets selenium-firefoxdriver firefox-driver
有些页面加载速度很慢,因此我需要指定一些页面加载超时时间。例如 60 秒后加载过程将被中断。
如何在我的 Java 应用程序中为 Selenium FirefoxDriver 指定页面加载超时?
【问题讨论】:
标签: java sockets selenium-firefoxdriver firefox-driver
我认为您可以使用 Selenium 支持的显式和隐式等待,您可以在 http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp 中看到
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://somedomain/url_that_delays_loading");
WebElement myDynamicElement = driver.findElement(By.id("myDynamicElement"));
或者您可以在页面中等待您可能想要获取的一些对象,如下所示(我用 Python 编写,但我认为您可以理解想法)
while ('Loading' in driver.page_source) and t < 5:
driver.implicitly_wait(t * time_waiting / 3)
t =+ 1
【讨论】:
driver.get 方法的超时,还会影响所有其他等待,例如 driver.findElement.. 但我只需要更改 driver.get 的超时方法