在selenium

时间:2018-04-03 07:39:55

标签: javascript java selenium

我在selenium中写了一个javascript但它不起作用....这是我的代码

FluentJavascript variable = executeScript("return arguments[0].getBoundingClientRect();", element); // to get x, y, width and height of element

有什么建议吗?

2 个答案:

答案 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); 

并确保元素确实存在。