用selenium编写javascript
我正在用selenium编写javascript,但它不起作用。。。。这是我的密码用selenium编写javascript,javascript,java,selenium,Javascript,Java,Selenium,我正在用selenium编写javascript,但它不起作用。。。。这是我的密码 FluentJavascript variable = executeScript("return arguments[0].getBoundingClientRect();", element); // to get x, y, width and height of element 有什么建议吗?如果试图检索元素的大小及其相对于的位置,则可以按如下方式调用该方法: JavascriptExecutor js
FluentJavascript variable = executeScript("return arguments[0].getBoundingClientRect();", element); // to get x, y, width and height of element
有什么建议吗?如果试图检索元素的大小及其相对于的位置,则可以按如下方式调用该方法:
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement element = driver.findElement(By.xpath("element_xpath"));
Dimension mydimension = (Dimension) js.executeScript("return arguments[0].getBoundingClientRect();", element);
var rect = document.getElementById("myElement").getBoundingClientRect();
- 通过Java,您可以使用维度类并调用
,如下所示:getBoundingClientRect()
JavascriptExecutor js = (JavascriptExecutor) driver; WebElement element = driver.findElement(By.xpath("element_xpath")); Dimension mydimension = (Dimension) js.executeScript("return arguments[0].getBoundingClientRect();", element);
var rect = document.getElementById("myElement").getBoundingClientRect();
- 通过Javascript,您可以调用
,如下所示:getBoundingClientRect()
JavascriptExecutor js = (JavascriptExecutor) driver; WebElement element = driver.findElement(By.xpath("element_xpath")); Dimension mydimension = (Dimension) js.executeScript("return arguments[0].getBoundingClientRect();", element);
此行将返回包含整个元素的最小矩形,该矩形具有以像素为单位描述整个边框框的左、上、右、下、x、y、宽度和高度属性var rect = document.getElementById("myElement").getBoundingClientRect();
注意:除宽度和高度以外的属性都是相对于视口的左上角的。我倾向于认为executeScript更容易:
((JavascriptExecutor)driver).executeScript("return arguments[0].getBoundingClientRect();", element);
还要确保元素确实存在 你犯了什么错误?@john这不是编译好的,什么是不编译的?而且,我看不出这一行代码是如何相关的。除非您没有导入
FluentJavascript
,因此编译器不知道如何处理它,或者executeScript
具有不同的签名。或erhaps元素
从未初始化。这纯粹是猜测,但编译器应该非常明确地告诉您这两种情况是否都是这样。JS肯定与此无关。@嗯,编译错误一定是有原因的,请检查它的消息/stacktrace。请粘贴编译错误消息。但我想在java上下文中编写它(selenium要切中要害),就我们所知,在OP的例子中,executeScript
实际上可能最终只是调用它。我们仍然不知道他到底犯了什么错误,因此不知道你的替换线路是否能正常工作。