【发布时间】:2020-12-29 15:24:26
【问题描述】:
我最近在 SO 上 posted a question 观察到,在调用 element.getSize().getWidth() 和 @ 时,Chrome Inspector 工具与 Selenium WebDriver 返回了不同的元素高度和宽度987654324@。使用 Chrome Inspector 我可以得到 w = 979、h = 1961 的尺寸。使用Selenium,我分别得到979 and 1461 的尺寸。
我用来检索元素的代码:
String URL = "https://www.amazon.com/dp/B07G9RZD14";
driver.navigate().to(URL);
String XPath = ".//*[@id='aplus']/div";
WebElement element = driver.findElement(By.xpath(XPath));
我已经多次重复这个实验,每次都得到相同的结果。 Some have suggested 我正在更改浏览器的大小,但事实并非如此。我总是从头到尾以最大化模式进行测试。
我做了进一步的实验,结果发现,如果我在页面加载后立即使用 Chrome Inspector 检查元素(不向下滚动到元素使其显示在视图中),则返回的尺寸与Selenium (1461) 返回的尺寸。只有在我将元素滚动到视图中之后,元素高度才会“增长”到 1961 年。
当我检查上述 URL 中的 HTML 时,我看到一个执行“扩展器”功能的脚本。
我有三个问题。
1) 这个功能是如何工作的? (看起来它正在使用Javascript)
2) 是否可以在不滚动元素的情况下获得所述元素(1961)的真实尺寸?或者需要滚动到带有这种功能的视图元素?
3) 如果需要将这些元素滚动到视图中,我们是否可以知道哪些元素具有此功能并且需要滚动到视图中,或者我必须滚动所有元素以防万一?
谢谢
【问题讨论】:
标签: javascript html selenium selenium-webdriver webdriver