gpt4 book ai didi

java - 如何使用 java 在 selenium 中显式等待 driver.get()

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:30 27 4
gpt4 key购买 nike

如何等待 driver.get(),因为我们使用 .get() 访问的 URL 是不知道的。并且可能需要未知的时间所以我们必须给 diver.get() 30 秒超时然后如何给它。

下面是它的代码..

package org.openqa.selenium.example;

import java.util.List;

import org.openqa.selenium.By

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.firefox.FirefoxDriver;


public class MyClass{

public static void main(String[] args) throws Exception {

// The Firefox driver supports javascript

WebDriver driver = new HtmlUnitDriver();

// Go to the some websites

driver.get("http://www.abced.com/123456/asd.htm");

/*** Here we DONT get back the driver, so we need to Give Time out of 30 seconds**/

final List<WebElement> element1= driver.findElements(By.tagName("a"));

for (WebElement webElement : element1) {

String urlFromPage = webElement.getAttribute("href");

System.out.println(urlFromPage);

}


}

}

我试过了

driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get(thisPage.url);

它不工作..请建议,发送

最佳答案

如果您想等待页面加载,您应该使用 pageLoadTimeout(long time, java.util.concurrent.TimeUnit unit) 方法。 implicitlyWait(long time, java.util.concurrent.TimeUnit unit)用于等待尚未出现的元素,而不是等待页面加载。

在您的 WebDriver 实例上,您应该调用与您在 implicitlyWait() 中使用的方法链类似的方法链。这将按顺序调用:

  • manage() - 驱动程序管理接口(interface)
  • options() - 驱动选项接口(interface)
  • timeouts() - 超时选项接口(interface)
  • pageLoadTimeout(...) - 将超时设置为您想要的时间

你可以找到相关的javadoc here .

关于java - 如何使用 java 在 selenium 中显式等待 driver.get(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10408928/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com