我在selenium中写了一个javascript但它不起作用....这是我的代码
FluentJavascript variable = executeScript("return arguments[0].getBoundingClientRect();", element); // to get x, y, width and height of element
有什么建议吗?
答案 0 :(得分:0)
如果您尝试检索元素的大小及其相对于Viewport的位置,您可以按如下方式调用getBoundingClientRect()方法:
通过 Java ,您可以使用 Dimension 类并按如下方式调用getBoundingClientRect()
:
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement element = driver.findElement(By.xpath("element_xpath"));
Dimension mydimension = (Dimension) js.executeScript("return arguments[0].getBoundingClientRect();", element);
通过 Javascript ,您可以按如下方式调用getBoundingClientRect()
:
var rect = document.getElementById("myElement").getBoundingClientRect();
此行将返回包含 left , top , right , bottom , x , y , width 和 height 属性,描述整个边框 - 以像素为单位。
注意: width 和 height 以外的属性相对于视口的左上角。
答案 1 :(得分:0)
我倾向于更容易找到executeScript:
((JavascriptExecutor)driver).executeScript("return arguments[0].getBoundingClientRect();", element);
并确保元素确实存在。