通过Selenium和浏览器开发工具获取网页上“链接总数”的数量差异

问题描述 投票:1回答:1

我编写了代码来计算网页上的链接总数。我在selenium中使用了JavascriptExecutor。但问题是我在Selenium中获得的总数链接Java Script命令和浏览器控制台中的相同数量。以下是测试详情:

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

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

我无法理解这里的差异。请有人帮我理解

selenium dom selenium-webdriver selenium-chromedriver geckodriver
1个回答
0
投票

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

document.links.length

你通过Test Result观察到的ChromeDriver与我通过Chrome Development Console观察到的快速测试结果完全相同,即422的确切数字。请参见下面的快照:

document.links.length

然而,值得一提的是IEDriverServerGeckoDriver都是符合W3C标准的,Google ChromePhantomJS仍然是OSS Compliant通过不同的协议和标准呈现HTML DOM Tree。虽然DOM树渲染Mechanism的差异可能是微不足道的,但deltaEnd Results差异足以使你的Validation失败。

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

© www.soinside.com 2019 - 2024. All rights reserved.