使用硒将元素滚动到视图中
在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