HtmlUnitDriver 找不到作为 ChromeDriver 的元素



我有一个简单的报废应用程序,我想在其中找到匹配项的所有 href:

public class MainClass {
    public static void main(String args[]) {
        WebDriver driver = null;
        driver = new HtmlUnitDriver(BrowserVersion.CHROME);
//        driver = new ChromeDriver();
        driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.MINUTES);
        driver.get("https://www.tipsport.cz/live");
        System.out.println("HTMLELEMENT: n" + driver.getPageSource());
        List<WebElement> elements = driver.findElements(By.xpath("//div[@id='events']//a"));
        System.out.println("Size of elements: " + elements.size());
    }
}

如果我通过 HTML 单元驱动程序以这种方式执行此操作,我会得到"Size of elements: 0".当我查看安慰并尝试找出带有 id="events" 的元素时。它就在那里:

<div class="liveList" id="events">

当我使用 ChromeDrive 运行相同的代码时,它会找到元素,目前是 51。

为什么是这一行

List<WebElement> elements = driver.findElements(By.xpath("//div[@id='events']//a"));

在ChromeDriver和HTMLUnitDriver中没有做同样的事情,你能帮我做错什么吗?我需要在没有铬的情况下运行它

通过直接 HtmlUnit 访问(2.27 快照(并等待,它会检索值:

try (final WebClient webClient = new WebClient(BrowserVersion.CHROME)) {
    String url = "https://www.tipsport.cz/live";
    HtmlPage page = webClient.getPage(url);
    Thread.sleep(5_000);
    List<?> elements = page.getByXPath("//div[@id='events']//a");
    System.out.println(elements.size());
}

我不确定您使用哪个 HtmlUnitDriver 版本,以及为什么最新发布的版本返回 0。

最新更新