Javascript “Web元素”;“成长”;在被滚动到视图中之后
最近,我在调用Javascript “Web元素”;“成长”;在被滚动到视图中之后,javascript,html,selenium,selenium-webdriver,webdriver,Javascript,Html,Selenium,Selenium Webdriver,Webdriver,最近,我在调用element.getSize().getWidth()和element.getSize().getHeight()时,发现Chrome Inspector工具返回的元素高度和宽度与Selenium WebDriver不同。使用铬检测仪我得到w=979,h=1961的尺寸。使用Selenium我分别得到979和1461的维度 我用于检索元素的代码: String URL = "https://www.amazon.com/dp/B07G9RZD14"; driv
element.getSize().getWidth()
和element.getSize().getHeight()
时,发现Chrome Inspector工具返回的元素高度和宽度与Selenium WebDriver不同。使用铬检测仪我得到w=979
,h=1961
的尺寸。使用Selenium
我分别得到979和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));
这个实验我重复了好几次,每次都得到了相同的结果。我改变了浏览器的大小,但事实并非如此。我始终以最大化模式从头到尾执行测试
我做了进一步的实验,结果表明,如果我在页面加载后立即使用Chrome Inspector检查元素(没有向下滚动到元素,以便将其放入视图),则返回的维度与Selenium
返回的维度匹配(1461)。只有在我将元素滚动到视图中之后,元素高度才会“增长”到1961
当我检查上面URL中的HTML时,我看到一个脚本正在执行一个“扩展器”函数
我有三个问题
1)此功能是如何工作的?(看起来它使用的是Javascript
)
2)是否可以在不将元件滚动到视图中的情况下获得所述元件(1961)的真实尺寸?或者它需要滚动到视图元素并附加这种功能
3)如果需要将这些元素滚动到视图中,我们是否可以知道哪些元素具有此功能并且需要滚动到视图中,或者作为预防措施,我必须将所有元素滚动到视图中
谢谢亚马逊产品页面非常复杂,包含大量延迟加载的图像和其他元素。您的元素很可能在增长,因为在向下滚动页面时,新内容被延迟呈现
要回答您的问题,您当然需要向下滚动整个页面,并允许所有元素完成渲染,如果您想要完全精确的尺寸