使用硒将元素滚动到视图中

在Selenium 1.x或2.x中有没有办法滚动浏览器窗口,以便XPath标识的特定元素在浏览器中? Selenium有一个焦点方法,但它似乎并没有在FireFox中实际滚动视图。 有没有人有任何建议如何做到这一点?

我需要这个的原因是我正在测试页面上元素的点击。 不幸的是,除非元素可见,否则事件似乎不起作用。 我无法控制单击元素时触发的代码,因此我无法对其进行调试或修改,因此,最简单的解决方案是将该项目滚动到视图中。


已经尝试了很多关于滚动的事情,但下面的代码提供了更好的结果。

这将滚动,直到元素在视图中:

WebElement element = driver.findElement(By.id("id_of_element"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
Thread.sleep(500); 

//do anything you want with the element

您可以使用org.openqa.selenium.interactions.Actions类来移动到一个元素:

WebElement element = driver.findElement(By.id("my-id"));
Actions actions = new Actions(driver);
actions.moveToElement(element);
actions.perform();

JavascriptExecutor js = (JavascriptExecutor) driver;
        js.executeScript("javascript:window.scrollBy(250,350)");

你可能想试试这个。

链接地址: http://www.djcxy.com/p/65327.html

上一篇: Scroll Element into View with Selenium

下一篇: Netbeans: how to change @author