WebDriver中页面滚动(scrolling)
这里面主要由链接(http://selenium-tutorial.blogspot.sg/2013/02/scroll-page-webdriver.html)整理过来,主要回答了如何用webdriver来滚动页面,滚上滚下,滚到指定元素以及怎么识别滚动条等。
1. 利用selenium中的focus(locator)函数实现(Link)
@Test
public void testFocus() throws Exception {selenium.open("/");selenium.windowMaximize();selenium.type("q", "selenium wiki");selenium.click("btnG");//Waiting for an elementfor (int second = 0;; second++) {if (second >= 60) fail("timeout");try { if (selenium.isElementPresent("link=Selenium Overview - Wiki - Liferay.com")) break; } catch (Exception e) {}Thread.sleep(1000);}//Set focus on element --then page will scroll down --focus will be on that elementselenium.focus("link=Selenium Overview - Wiki - Liferay.com");//To capture a screenshotselenium.captureScreenshot("c:/naga/screenshot.png");Thread.sleep(10000);
}
2. 利用webdriver执行脚本直接滚动到指定坐标位置(LinkLink2)
public static void test1() throws InterruptedException{WebDriver driver = new FirefoxDriver();driver.get("http://www.nytimes.com/");((JavascriptExecutor)driver).executeScript("scrollTo(0,3000)");Thread.sleep(5000L);}
((JavascriptExecutor) driver).executeScript("scroll(0,250);"); //-250
((JavascriptExecutor) driver).executeScript("scroll(250,0);");
((JavascriptExecutor) driver).executeScript("window.scrollBy(0,250)", "");
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();" ,webElement);
3. 判断是否有滚动条可以比较窗口高度和滚动条高度(Link)
Selenium.type(xpath of the text-area element,text value);
String str1=Selenium.getEval("this.browserbot.getCurrentWindow().document.getElementsByClassName('cssclassname')[0].clientHeight");
String str = Selenium.getEval("this.browserbot.getCurrentWindow().document.getElementsByClassName('cssclassname')[0].scrollHeight");
int clientHeight = Integer.parseInt(str1);
int scrollHeight = Integer.parseInt(str);if(clientHeight < scrollHeight){System.out.println("Vertical scrollbar appears");
}else{System.out.println("Vertical scrollbar is not appear");
}
4. 滚动到目标元素的纵坐标位置(Link)
public void scrollAndClick(By by)
{WebElement element = driver.findElement(by);int elementPosition = element.getLocation().getY();String js = String.format("window.scroll(0, %s)", elementPosition);((JavascriptExecutor)driver).executeScript(js);element.click();
}
5. 滚动到指定元素位置
WebElement element = webdriver.findElement(locator);
((Locatable)element).getLocationOnScreenOnceScrolledIntoView();
发现最新的webdriver代码已改,上面的函数已经没有了,经过试验一下代码可以替换:
Coordinates coor = ((Locatable)element).getCoordinates();coor.inViewPort();
WebDriver中页面滚动(scrolling)相关推荐
- table列最小宽度 vue_vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)...
mounted() { // 在mounted中监听表格scroll事件 this.$refs.scrolltable.addeventlistener( 'scroll',(event) => ...
- labview在2048中添加时间滚动条_Axure 教程:不可见滚动条的页面滚动效果
在设计产品原型的过程中,经常会遇到这样的一种场景--所要展示的内容,超出了当前可视页面范围.遇到这种情况,通常使用Axure动态面板的滚动条设置来解决. 产品原型设计是产品经理每日或周期性必须经历的事 ...
- js控制页面滚动到指定位置,js中scrollIntoView()的用法
js中scrillIntoView()的用法--页面滚动到指定位置 最近遇到一个问题,在一个页面上,点击某个按钮时,滚动到页面的某一位置. 如图: 如果是我写的话,我可能会先获取滚动到的元素,然后获取 ...
- vue2.0中的滚动问题--点击跳转到页面指定位置
前言:我在项目中,需要实现一个发布评论,然后让页面滚动到发布评论的位置.之后百度了几种方法,一一验证之后都不能实现,下面将列出使用后出现的问题.以及自己的尝试. 1 - 3 这种方法得到的docume ...
- vue中禁止页面滚动/滚动事件穿透
1.移动端 在蒙层所在div上加 @touchmove.prevent <div class="maskBox" @touchmove.prevent></div ...
- vue中禁止页面滚动/滚动事件穿透-弹出蒙版时弹出层下面还可以滚动问题解决
弹出层时,蒙版下还可以滚动页面 移动端 在蒙层所在div上加 @touchmove.prevent <div class="maskBox" @touchmove.preve ...
- [导入]控制IFrame里的页面滚动原来如此简单:)
图片控制页面滚动 常用效果之一 步骤一:在当前网页中插入其它网页 <iframe name=a1 align=left src="page.htm" frameborder= ...
- 页面滚动时触发图片逐帧播放_如何在滚动效果上创建逐帧运动图像
页面滚动时触发图片逐帧播放 A step by step guide on how to create that dynamic image background you see everywhere ...
- 解决iframe在ios中无法滚动的bug
https://fly.layui.com/jie/32020/(无效) 修改方法: 1.在嵌入进iframe的每个页面的<body>里面加个id,如<body id="i ...
最新文章
- SAP MIGO对工单做101收货,报错 - Check table TFBEFU_CR entry 10 does not exist – 对策
- 3种方法来卸载Ubuntu软件
- boost::graph_property_iter_range用法的测试程序
- “内部人”的信息安全架构---信任体系
- matlab ssgs工具箱,基于PI控制方式的1A开关电源MATLAB仿真研究
- python 自动点击上传以后上传文件,python使用selenium模拟点击网页实现自动导入上传文件功能...
- 移动端常用的四个框架
- 线程池最佳线程数量到底要如何配置?
- 基于Redis的限流系统的设计
- arm linux 内存压力测试,嵌入式中如何给内存做压力测试?
- 像中文的罗马音字体复制_罗马音字体复制下载
- Apple Pay如何使用?全网最完美攻略(图文教程)!
- python实部和虚部_Python复数表示表示和计算
- 速读原著-UnixLinux基础(六)
- 宇宙简史|生物学家也要了解的物理
- 漏洞利用-SSH Banner信息获取
- 爬虫实践: 获取百度贴吧内容
- Python-Selenium-OSError: [WinError 6] 句柄无效
- 开启TX2、Xavier最大性能 Opening the Max performance of TX2、Xavier
- jQuery中toggle与slideToggle以及fadeToggle之间的不同