selenium技巧——通过js来控制滚动条  业务流程:

简介:
 1.打开此网页 http://nanjing.xiaomishu.com/shop/search/sp2048_745
  2.向下拖动滚动条,右下角自动会出现【投诉与建议】(此网页已经修改不拖动也出现了,以前是没有的,)
  3.点击【投诉与建议】
  4.在打开的div 层中输入姓名,邮件,内容 并点击确定
  5.验证页面上的提示文字
 



package com.example.tests;

import org.junit.*;
import org.openqa.selenium.*;
import org.openqa.selenium.ie.InternetExplorerDriver;


public class SeleniumWebDriver {
 public static WebDriver driver;
 
 @Test
 public void testUnit() {
  driver = new InternetExplorerDriver();
  driver.get(http://nanjing.xiaomishu.com/shop/search/sp2048_745);
  
  maxBrowser(driver);
  setScroll(driver,500);

  driver.findElement(By.linkText("投诉与建议")).click(); 
  driver.findElement(By.xpath("//input[@id='repName']")).sendKeys("1");
  driver.findElement(By.xpath("//input[@id='repMail']")).sendKeys("1");
  driver.findElement(By.xpath("//textarea[@id='repContent']")).sendKeys("hello");
  driver.findElement(By.xpath("//a[@id='repBtn']")).click();
  
  Assert.assertEquals("您输入的邮箱格式不正确", driver.findElement(By.xpath("//div[@id='floatBox_remind']/span")).getText());
  
 }
 
 
 //将IE最大化
  public static void  maxBrowser(WebDriver driver){
   try {
    String maxBroswer = "if (window.screen) {window.moveTo(0, 0);" +
      "window.resizeTo(window.screen.availWidth,window.screen.availHeight);}";
    
    JavascriptExecutor jse=(JavascriptExecutor) driver;
    jse.executeScript(maxBroswer);
   } catch (Exception e) {
    System.out.println("Fail to  Maximization browser");
   }
  }
 
 //将滚动条滚到适合的位置
 public static void setScroll(WebDriver driver,int height){
  try {
   String setscroll = "document.documentElement.scrollTop=" + height;
   
   JavascriptExecutor jse=(JavascriptExecutor) driver;
   jse.executeScript(setscroll);
  } catch (Exception e) {
   System.out.println("Fail to set the scroll.");
  }   
 } 
}

  对于这种顶级div层,一开始用id来定位,在firefox中可以正常跑

  在IE中会报stack overflow的错误,一直以来是以为没有加等待时间而没找到

  后来试了很多方法,最后发现用xpath就解决了,真是耽误了很久的时间

  给大家借鉴,如果一个定位方法不能用时,多换换其他的

  这个例子中我们学习了如何用JS控制滚动条,如何最大化IE页面。   



最新内容请见作者的GitHub页:http://qaseven.github.io/

   

目录
相关文章
|
JavaScript 前端开发 测试技术
使用Selenium执行JavaScript脚本:探索Web自动化的新领域
本文介绍了如何在Selenium中使用JavaScript解决自动化测试中的复杂问题。Selenium的`execute_script`函数用于同步执行JS,例如滑动页面、操作时间控件等。在滑动操作示例中,通过JS将页面滚动到底部,点击下一页并获取页面信息。对于只读时间控件,利用JS去除readonly属性并设置新日期。使用JS扩展了Selenium的功能,提高了测试效率和精准度,适用于各种自动化测试场景。
|
JavaScript
selenium--操作JS弹框
selenium--操作JS弹框
|
数据采集 Web App开发 JavaScript
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(三十九)-java+ selenium自动化测试-JavaScript的调用执行-上篇(详解教程)
【5月更文挑战第3天】本文介绍了如何在Web自动化测试中使用JavaScript执行器(JavascriptExecutor)来完成Selenium API无法处理的任务。首先,需要将WebDriver转换为JavascriptExecutor对象,然后通过executeScript方法执行JavaScript代码。示例用法包括设置JS代码字符串并调用executeScript。文章提供了两个实战场景:一是当时间插件限制输入时,用JS去除元素的readonly属性;二是处理需滚动才能显示的元素,利用JS滚动页面。还给出了一个滚动到底部的代码示例,并提供了详细步骤和解释。
304 10
|
数据采集 Web App开发 JavaScript
如何使用Selenium处理JavaScript动态加载的内容?
如何使用Selenium处理JavaScript动态加载的内容?
|
Web App开发 前端开发 JavaScript
JavaScript动态渲染页面爬取——Selenium的使用(一)
JavaScript动态渲染页面爬取——Selenium的使用(一)
656 4
|
Web App开发 数据采集 JavaScript
JavaScript动态渲染页面爬取——Selenium的使用(二)
JavaScript动态渲染页面爬取——Selenium的使用(二)
667 2
|
Web App开发 JavaScript 前端开发
高性能的纯Js滚动条美化插件smooth-scrollbar
smooth-scrollbar是一款高性能的纯JavaScript滚动条美化插件。该滚动条为现代浏览器而制作,它具有高性能,自由配置,平滑滚动等特点,支持各种现代桌面浏览器和手机设备。
|
JavaScript
js【图解】滚动条的位置(文档与屏幕间的距离),鼠标事件距离(位置),元素距离(位置)
js【图解】滚动条的位置(文档与屏幕间的距离),鼠标事件距离(位置),元素距离(位置)
422 7
|
JavaScript 前端开发 Java
《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程)
【5月更文挑战第4天】本文介绍了如何使用JavaScriptExecutor在自动化测试中实现元素高亮显示。通过创建并执行JS代码,可以改变元素的样式,例如设置背景色和边框,以突出显示被操作的元素。文中提供了一个Java示例,展示了如何在Selenium中使用此方法,并附有代码截图和运行效果展示。该技术有助于跟踪和理解测试过程中的元素交互。
182 0