通过 Selenium 和浏览器开发工具获取网页上 "Total Number of links" 的计数差异

Getting Difference in count of "Total Number of links" on webpage through Selenium and Browser Development Tools

我已经编写了代码来计算网页上 link 的总数。我在 selenium 中使用了 JavascriptExecutor 。但问题是我在 Selenium 和浏览器控制台中得到的总数 link Java 脚本命令不同。以下是测试详情:

正在测试的网站:https://www.ebay.com/ 测试:Ebay 主页上的 link 总数。

Selenium 代码和结果:

WebDriver driver = new ChromeDriver();
    driver.get("https://www.ebay.com/");

    driver.manage().timeouts().implicitlyWait(20l, TimeUnit.SECONDS);

    JavascriptExecutor js = (JavascriptExecutor)driver;
    System.out.println(js.executeScript(" return document.links.length"));

结果:422

但是当我在浏览器控制台中执行相同的操作时,我得到了 440。 enter image description here

我无法理解这里的区别。请有人帮助我理解

很难回答你的问题,因为你没有提到你在哪个浏览器控制台上执行了 JavaScript 命令:

document.links.length

你通过ChromeDriver观察到的Test Result怎么和我通过观察到的速测结果完全一样呢[= =14=]422的确切数字。请参阅下面的快照:

然而,值得一提的是 IEDriverServerGeckoDriver 都是 W3C 兼容Google ChromePhantomJS 仍然是 OSS 兼容 通过不同的协议和标准呈现 HTML DOM Tree。尽管 DOM Tree 渲染 Mechanism 的差异可能微不足道,但 delta End Results 的差异足以 失败 你的 Validation.

因此解决方案是始终选择任何一个变体(IE/Firefox /Chrome/PhantomJS) WebDriver/ Web Browser 组合以验证 ManualAutomated Test Results.