bar*_*nos 6 javascript java dom selenium-webdriver
我在Java中使用Selenium Web服务器,以便自动化许多网页.
例如:
WebDriver driver = new FirefoxDriver();
driver.get(url);
WebElement element = driver.findElement(By.id("some_id"));
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得绝对的位置element?
在Javascript中,我可以获取DOM中任何元素的值offsetTop和offsetLeft值:
var element = document.getElementById("some_id");
var offsetTop = element.offsetTop;
var offsetLeft = element.offsetLeft;
Run Code Online (Sandbox Code Playgroud)
因此,首先想到的是用上面的脚本调用JavascriptExecutor.
但我想避免这种情况.有没有其他方法可以用Selenium获得这些值?
谢谢
小智 5
在 Python 中,这将获得 web 元素的顶部偏移量:
driver = webdriver.Chrome()
driver.get(url)
element = driver.find_element_by_id('some_id')
offset_top = element.get_attribute('offsetTop')
Run Code Online (Sandbox Code Playgroud)
由于两者都使用 Selenium,那么在 Java 中等效的将是(未经测试):
WebDriver driver = new FirefoxDriver();
driver.get(url);
WebElement element = driver.findElement(By.id("some_id"));
int offsetTop = element.getAttribute("offsetTop");
Run Code Online (Sandbox Code Playgroud)
您尝试过使用getLocation()的方法吗WebElement?似乎正在做你需要的事情......
这是 API 文档:
http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html
但是,根据站点的构建方式,元素位置可能取决于窗口的大小(检查style="position:fixed"),因此在尝试验证位置时要小心...