Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “Web元素”;“成长”;在被滚动到视图中之后_Javascript_Html_Selenium_Selenium Webdriver_Webdriver - Fatal编程技术网

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)如果需要将这些元素滚动到视图中,我们是否可以知道哪些元素具有此功能并且需要滚动到视图中,或者作为预防措施,我必须将所有元素滚动到视图中


谢谢

亚马逊产品页面非常复杂,包含大量延迟加载的图像和其他元素。您的元素很可能在增长,因为在向下滚动页面时,新内容被延迟呈现

要回答您的问题,您当然需要向下滚动整个页面,并允许所有元素完成渲染,如果您想要完全精确的尺寸