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/

   

目录
相关文章
|
8月前
|
JavaScript
selenium--操作JS弹框
selenium--操作JS弹框
|
3月前
|
移动开发 JavaScript 前端开发
分享33个JS滚动条特效&47个JS瀑布流特效,总有一款适合您
分享33个JS滚动条特效&47个JS瀑布流特效,总有一款适合您
27 0
|
4月前
|
JavaScript
【经典】原生JS实现“用鼠标拖拽(drag)内容DIV”,滚动条对应同步滚动
【经典】原生JS实现“用鼠标拖拽(drag)内容DIV”,滚动条对应同步滚动
|
5月前
|
Web App开发 JavaScript 前端开发
Python Selenium 执行 JavaScript
Python Selenium 执行 JavaScript
|
Web App开发 前端开发 JavaScript
Selenium 如何定位 JavaScript 动态生成的页面元素
Selenium 是一个自动化测试工具,可以用来模拟浏览器的操作,如点击、输入、滚动等。但是有时候,我们需要定位的页面元素并不是一开始就存在的,而是由 JavaScript 动态生成的。这时候,如果我们直接用 Selenium 的 find_element 方法去定位元素,可能会出现找不到元素的错误,因为页面还没有加载完成。为了解决这个问题,我们需要使用一些特定的定位技巧,让 Selenium 等待元素出现后再进行操作。
370 0
|
7月前
|
JavaScript
计算滚动条的宽度--js
计算滚动条的宽度--js
37 0
|
7月前
|
JavaScript
js判断滚动条是否到底部demo效果示例(整理)
js判断滚动条是否到底部demo效果示例(整理)
|
8月前
|
Web App开发 JavaScript
selenium--浏览器滚动条操作
selenium--浏览器滚动条操作
|
9月前
|
Web App开发 JavaScript 前端开发
如何使用Selenium自动化Chrome浏览器进行Javascript内容的数据挖掘和分析?
数据挖掘和分析是当今互联网时代的重要技能,它可以帮助我们从海量的信息中提取有价值的知识,为我们的决策和行动提供支持。但是,有些网站的内容是通过Javascript动态生成的,这就给数据挖掘和分析带来了一定的难度。如何才能有效地获取和处理这些Javascript内容呢?本文将介绍一种简单而强大的方法,就是使用Selenium自动化Chrome浏览器进行Javascript内容的数据挖掘和分析。
如何使用Selenium自动化Chrome浏览器进行Javascript内容的数据挖掘和分析?
|
9月前
|
数据采集 Web App开发 JavaScript
如何使用Selenium自动化Firefox浏览器进行Javascript内容的多线程和分布式爬取
在本文中,我们将介绍如何使用Selenium自动化Firefox浏览器进行Javascript内容的多线程和分布式爬取。我们将以一个简单的示例为例,抓取百度搜索结果页面中的标题和链接,并将结果保存到本地文件中。我们将使用Python语言编写代码,并使用爬虫代理服务器来隐藏我们的真实IP地址。
103 0
如何使用Selenium自动化Firefox浏览器进行Javascript内容的多线程和分布式爬取

热门文章

最新文章