我已编写代码来计算网页上的链接总数。我在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
我无法理解这里的区别。请有人帮我理解
答案 0 :(得分:0)
回答你的问题非常困难,因为你没有提到你执行JavaScript
命令的浏览器控制台:
document.links.length
您通过 Test Result
观察到的ChromeDriver
与我通过 Chrome Development Console
即 422 的确切数字。请参阅下面的快照:
但是,值得一提的是 IEDriverServer
和 GeckoDriver
符合W3C 和 Google Chrome
且 PhantomJS
仍然符合OSS 会将 HTML DOM Tree
呈现为不同协议和标准。虽然 DOM树呈现Mechanism
的差异可能无关紧要,但delta
的{{1}}差异足以失败您的{{} 1}}。
因此,解决方案是始终选择任何单个变体( End Results
/ Validation
/ {{1} IE
/ Firefox
组合 / Chrome
)以验证< strong> PhantomJS
和 WebDriver
Web Browser
。