java - 使用 Selenium 网络驱动程序获取元素的绝对位置

标签 java javascript dom selenium-webdriver

我在 Java 中使用 Selenium 网络服务器,以便自动化许多网页。

例如:

WebDriver driver = new FirefoxDriver();
driver.get(url);
WebElement element = driver.findElement(By.id("some_id"));

如何获取元素的绝对位置?

在 Javascript 中,我可以获得 DOM 中任何元素的 offsetTopoffsetLeft 值:

var element    = document.getElementById("some_id");
var offsetTop  = element.offsetTop;
var offsetLeft = element.offsetLeft;

所以首先想到的是用JavascriptExecutor调用上面的脚本。

但我想避免这种情况。有没有其他方法可以用 Selenium 获取这些值?

谢谢

最佳答案

在 Python 中,这将获取 Web 元素的顶部偏移量:

driver = webdriver.Chrome()
driver.get(url)
element = driver.find_element_by_id('some_id')
offset_top = element.get_attribute('offsetTop')

因为两者都使用 Selenium,所以在 Java 中等效的是(未经测试):

WebDriver driver = new FirefoxDriver();
driver.get(url);
WebElement element = driver.findElement(By.id("some_id"));
int offsetTop = element.getAttribute("offsetTop");

关于java - 使用 Selenium 网络驱动程序获取元素的绝对位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21461347/

相关文章:

javascript - jQuery - 如何在另一个容器 DIV 中查找 ID 的索引?

java - 我想使用 Java 通过 CP2102 发送和接收数据

java - 我想检查用户插入的文件名是否与目录中的文件名匹配

javascript - selectboxit 的 AngularJs 问题

javascript - AJAX 可以读取自定义扩展名的文件吗?

javascript - 一张 Canvas ,两个 dom 元素?

java - FindBugs:使用 JPA 元模型时如何避免 "Unwritten public field"警告?

java - 如何在 MyEclipse 中调试 GWT 项目?

javascript - 单击除 div 以外的主体时隐藏 div

javascript - 在浏览器中,如何检测与按钮交互触发了什么事件?