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. springboot#配置https

    1.准备证书 2.1 springboot 1.x配置 2.2 springboot 2.x配置 1.准备证书: keytool -genkeypair -alias tomcat -keyalg R ...

  2. ng -----监听变化($scope.$watch())

    需求:项目组件中遇到改变日期触发方法. 困难:日期组件中不涉及释焦功能 解决:在angularjs中用$scope.$watch() 其中name是字符串,是指监听到的具体对象值.

  3. SpringBoot 入门demo

    创建SpringBoot项目方式一 (1)新建maven项目,不使用骨架. 使用maven管理依赖就行了,不必使用骨架(模板). (2)在pom.xml中添加 <!--springboot核心. ...

  4. IOS导航器 + 表控制器 常用功能函数/属性

    1. 设置标题栏(顶部)颜色 在表控制器中 e.g -(void)viewDidLoad中添加 self.navigationController.navigationBar.barTintColor ...

  5. Lesson 6 The sporting spirit

    How does the writer describe sport at the international level? I am always amazed when I hear people ...

  6. 连接数据库 - (mysql-thinkphp) (2)

    1.现在conf里面写好选择的数据库 选择好了以后 2.在index里面输入 查询mysql数据库里面的表tables_priv的所有数据 public function index() { $res ...

  7. 在 Scale Up 中使用 Health Check【转】

    对于多副本应用,当执行 Scale Up 操作时,新副本会作为 backend 被添加到 Service 的负载均衡中,与已有副本一起处理客户的请求.考虑到应用启动通常都需要一个准备阶段,比如加载缓存 ...

  8. Day5 - H - Supermarket POJ - 1456

    A supermarket has a set Prod of products on sale. It earns a profit px for each product x∈Prod sold ...

  9. 移动端 三段式布局 (flex方式)

    分享一种平时用的三段式布局(flex) 主要思路是  上中下    header&footer 给高度  main 占其余部分 html 部分 <div class='wrap'> ...

  10. Spark 资料整理

    http://jerryshao.me/architecture/2013/10/08/spark-storage-module-analysis/ http://blog.csdn.net/aliv ...