http://blog.csdn.net/iceryan/article/details/8162703

业务流程:
 
1.打开此网页 http://nanjing.xiaomishu.com/shop/search/sp2048_745
2.向下拖动滚动条,右下角自动会出现【投诉与建议】(此网页已经修改不拖动也出现了,以前是没有的,)
3.点击【投诉与建议】
4.在打开的div 层中输入姓名,邮件,内容 并点击确定
5.验证页面上的提示文字
 
 
 
 
  1. package com.example.tests;
  2. import org.junit.*;
  3. import org.openqa.selenium.*;
  4. import org.openqa.selenium.ie.InternetExplorerDriver;
  5. public class SeleniumWebDriver {
  6. public static WebDriver driver;
  7. @Test
  8. public void testUnit() {
  9. driver = new InternetExplorerDriver();
  10. driver.get("http://nanjing.xiaomishu.com/shop/search/sp2048_745");
  11. maxBrowser(driver);
  12. setScroll(driver,500);
  13. driver.findElement(By.linkText("投诉与建议")).click();
  14. driver.findElement(By.xpath("//input[@id='repName']")).sendKeys("1");
  15. driver.findElement(By.xpath("//input[@id='repMail']")).sendKeys("1");
  16. driver.findElement(By.xpath("//textarea[@id='repContent']")).sendKeys("hello");
  17. driver.findElement(By.xpath("//a[@id='repBtn']")).click();
  18. Assert.assertEquals("您输入的邮箱格式不正确", driver.findElement(By.xpath("//div[@id='floatBox_remind']/span")).getText());
  19. }
  20. //将IE最大化
  21. public static void  maxBrowser(WebDriver driver){
  22. try {
  23. String maxBroswer = "if (window.screen) {window.moveTo(0, 0);" +
  24. "window.resizeTo(window.screen.availWidth,window.screen.availHeight);}";
  25. JavascriptExecutor jse=(JavascriptExecutor) driver;
  26. jse.executeScript(maxBroswer);
  27. } catch (Exception e) {
  28. System.out.println("Fail to  Maximization browser");
  29. }
  30. }
  31. //将滚动条滚到适合的位置
  32. public static void setScroll(WebDriver driver,int height){
  33. try {
  34. String setscroll = "document.documentElement.scrollTop=" + height;
  35. JavascriptExecutor jse=(JavascriptExecutor) driver;
  36. jse.executeScript(setscroll);
  37. } catch (Exception e) {
  38. System.out.println("Fail to set the scroll.");
  39. }
  40. }
  41. }
对于这种顶级div层,一开始用id来定位,在firefox中可以正常跑
在IE中会报stack overflow的错误,一直以来是以为没有加等待时间而没找到
后来试了很多方法,最后发现用xpath就解决了,真是耽误了很久的时间
给大家借鉴,如果一个定位方法不能用时,多换换其他的
这个例子中我们学习了如何用JS控制滚动条,如何最大化IE页面。

【转】selenium技巧 - 通过js来控制滚动条,通过xpath定位最上层的div层的更多相关文章

  1. selenium执行JavaScript语句:控制滚动条 聚焦元素 改变下拉选项

    1. 执行js脚本 控制滚动条 # http://www.cnblogs.com/yoyoketang/p/6128655.html In [347]: js = "window.scrol ...

  2. java selenium webdriver处理JS操作窗口滚动条

    未经作者允许,禁止转载!!! java selenium webdriver处理JS操作窗口滚动条 java selenium webdriver处理JS操作窗口滚动条 import org.open ...

  3. Python selenium webdriver设置js操作页面滚动条

    js2 = "window.scrollTo(0,0);" #括号中为坐标 当不知道需要的滚动的坐标大小时: weizhi2 = driver.find_element_by_id ...

  4. 2018年 js 简易控制滚动条滚动的简单方法

    首先是es2015 的新api Element.scrollIntoView() // 滚动到最上方 等同于 dom.scrollIntoView(true) Element.scrollIntoVi ...

  5. Java&Selenium控制滚动条方法封装

    Java&Selenium控制滚动条方法封装 package util; import org.openqa.selenium.JavascriptExecutor; import org.o ...

  6. 【python+selenium的web自动化】- 控制浏览器的常用操作

    如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html 前言 ​ 本文主要介绍se ...

  7. Selenium(十三)调用js,控制浏览器的滚动条

    WebDiver 不能操作本地 Windows 控件,但对于浏览器上的控件也不是都可以操作的.比如浏览器的滚动条,虽然 WebDriver 提供操作浏览器的前进和后退按钮,但对于滚动条并没有提供相应用 ...

  8. 使用selenium控制滚动条(非整屏body)

    方法原理:     (1)使用jQuery CSS 操作 - scrollTop() 方法,设置 <div> 元素中滚动条的垂直偏移,语法:$(selector).scrollTop(of ...

  9. selenium自动化之js处理滚动条和元素聚焦

    selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 当我们页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接操作的,会报元素不可见异常的.这时候需要借助滚动 ...

随机推荐

  1. sql语句中,传入的参数带单引号的问题

    今天在大批量操作数据时,遇到此问题,解决如下: if(cateName.indexOf("'")!=-1){ oql = " select * where name = ...

  2. centos7 bond双网卡

    [root@pay network-scripts]# cat ifcfg-bond0 |grep -v \#TYPE="Ethernet"PROXY_METHOD="n ...

  3. 099、Java中String类之字符数组与字符串的转换

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  4. 0. GC 前置知识

    阅读<垃圾回收的算法与实现>时记录的一些笔记. 对象 在GC的世界中,对象表示的是"通过应用程序利用的数据的集合" 头 我们将对象中保存对象本身信息的部分称为头.头主要 ...

  5. 1-8SpringBoot之切面AOP

    SpringBoot提供了强大AOP支持,我们前面讲解过AOP面向切面,所以这里具体AOP原理就补具体介绍: AOP切面主要是切方法,我们一般搞一些日志分析和事务操作,要用到切面,类似拦截器: @As ...

  6. gitlab实现webhook触发jenkins 自动,构建,测试,push webhook构子 总结

    最新一直在学习 工作 + 学习 去掉 90%   所以blog  一直没更 真是很不好!  exsi ceph gitlab jenkins harbor k8s  docker-compose ap ...

  7. Windows 与 Linux 、esxi下面查看内存容量和数量

    1. Windows 查看内存信息: > wmic MEMORYCHIP get BankLabel,DeviceLocator,Capacity,Speed 2. Linux 查看内存信息: ...

  8. vue :style 动态绑定style

    <div class="right userPicture" :style="[{'background':`url(${userImg}) no-repeat c ...

  9. pandas包 —— drop()、sort_values()、drop_duplicates()

    一.drop() 函数 当你要删除某一行或者某一列时,用drop函数,它不改变原有的df中的数据,而是返回另一个dataframe来存放删除后的数据. 1.命令: df.drop() 删除行:df.d ...

  10. es678910语法糖

    傲娇: 新es是js的进步,是编程的进步,es6已经过去了5年了,兼容率达到了90%,还是有10%的手机不兼容,那到底应不应该去照顾那些跟不上的人,我觉得是不应该的,新es能5行写出来的功能,我为什么 ...