1、背景:在网页自动化测试和网页表单自动交互的场景中,对动态js页面的加载,隐藏链接爬虫和表单元素需要加载js来解析。

htmlunit相比较于htmlparser以及httpclient只能解析静态页面来说,可以支持动态js页面的解析,但对js支持不是很好,如angularjs,因此需采用模拟浏览器的工具。

Selenium模拟浏览器:提供一组API和真实的浏览器内核交互。

2、部署:

selenium下载:http://selenium-release.storage.googleapis.com/index.html
下载:selenium-java-2.53.1.zip(jar包引入eclipse的java工程)和IEDriverServer_x64_2.53.1.zip(对应本机操作系统是64位的IE浏览器启动)。
两点注意:1)发现最新版本3.0.1和jdk1.7不兼容(本机安装是jdk1.7),所以更换回2.53.1版本。2)提示保护模式错误时,可通过IE浏览器设置(貌似效果不好),也可以在代码上设置。

Internet Option in IE –> Security–>Check or Unchecked “Enable Protected Mode.”

代码中设置见案例代码。IE浏览器保护模式错误提示如下:

Started InternetExplorerDriver server (64-bit)
2.53.1.0
Listening on port 36078
Only local connections are allowed
Exception: org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 840 milliseconds
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:32:46'
System info: host: 'ICD-PC', ip: '132.97.194.17', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_79'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver

3、案例:

package com.test;import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;public class BrasShopYP {//selenium下载:http://selenium-release.storage.googleapis.com/index.htmlpublic static void main(String[] args) {try {System.getProperties().setProperty("webdriver.ie.driver","D:\\dev\\workspace\\ocweb\\libs\\IEDriverServer.exe");//System.setProperty("webdriver.ie.bin", "C:\\Program Files\\Internet Explorer\\iexplore.exe"); //WebDriver webDriver = new InternetExplorerDriver();DesiredCapabilities caps = DesiredCapabilities.internetExplorer();caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);WebDriver webDriver = new InternetExplorerDriver(caps);//访问网址webDriver.get("http://www.baidu.com");// 获取 网页的 titleSystem.out.println("1 Page title is: " + webDriver.getTitle());// 通过 id 找到 input 的 DOMWebElement element = webDriver.findElement(By.id("kw"));// 输入关键字element.sendKeys("zTree");// 提交 input 所在的  formelement.submit();       // 通过判断 title 内容等待搜索页面加载完毕,Timeout 设置50秒//(new WebDriverWait(webDriver, 50)).until(new ExpectedCondition<Boolean>() {//    public Boolean apply(WebDriver d) {//        return d.getTitle().toLowerCase().endsWith("ztree");//    }//});// 显示搜索结果页面的 titleSystem.out.println("2 Page title is: " + webDriver.getTitle());// 关闭窗口,释放资源。webDriver.close();}catch (Exception e) {System.err.println( "Exception: " + e ); }}
}

下步就要研究selenium如何提取页面链接爬虫并实现表单自动填写交互。

模拟浏览器自动化测试工具Selenium之一eclipse集成开发部署篇相关推荐

  1. 模拟浏览器自动化测试工具Selenium之五Centos系统命令行下部署selenium环境试验

    一.背景:     Selenium是一个web自动化测试框架,也支持从HTML页面上爬取javascript生成的或AJAX的内容.     selenium2支持通过各种driver(Firfox ...

  2. 模拟浏览器自动化测试工具Selenium之三页面窗口切换开发篇

    不同网站有不同特性,需要掌握selenim基本网页元素定位以及浏览器控制,本文解析网页主要实现以下操作: 1)模拟鼠标操作,点击按钮提交:2)获取浏览器窗口句柄,切换到当前窗口下操作:3)处理不带总页 ...

  3. 模拟浏览器自动化测试工具Selenium之七采集网页信息写入excel

    功能:从网页上采集信息写入excel,有鼠标移动到相关元素代码,参考如下: package com.test;import java.io.DataInputStream; import java.i ...

  4. 模拟浏览器自动化测试工具Selenium之六设置代理篇

    在使用Selenium自动化测试时,如果需要设置代理访问网络时,可以参考如下代码: package com.test;import java.util.List; import org.openqa. ...

  5. 模拟浏览器自动化测试工具Selenium之二Html基本元素开发篇

    发现用IE浏览器,有很多动态网站加载错误,只好安装chrome浏览器,然后下载chrome driver来驱动.通过selenium的基本元素定位操作来和网页交互. 网页解析主要动作:1)表单自动填写 ...

  6. 模拟浏览器自动化测试工具Selenium之四cssSelector元素定位开发篇

    Selenium官网的Document里推荐使用CSS locator,而不是XPath来定位元素,原因是CSS locator比XPath locator速度快,特别是在IE下面(IE没有自己的XP ...

  7. Python学习笔记(一)——浏览器自动化测试工具Selenium

    看了网友用Python通过影评来分析电影是好片还是烂片,自己也有了个想法想去分析下百度贴吧的帖子是精品帖子还是水帖子.目前正在熟悉工具的使用. 会用到的库:Selenium, pandas(数据模型) ...

  8. Selenium浏览器自动化测试工具

    目录 Selenium浏览器自动化测试工具 Selenium模块在爬虫中的使用 Python简单使用Selenium Selenium的基本操作 Selenium爬取动态加载的数据 Selenium动 ...

  9. Python3 爬虫学习笔记 C04 【自动化测试工具 Selenium】

    Python3 爬虫学习笔记第四章 -- [自动化测试工具 Selenium] 文章目录 [4.1]下载驱动 [4.2]声明浏览器对象 [4.3]访问页面 [4.4]启动参数 [4.5]查找节点 [4 ...

最新文章

  1. 在自己的网站添加关注新浪关注按钮
  2. 逻辑模型三要素-完整性约束
  3. 深度学习已经彻底改变了制造业的质量控制,但还不够深入
  4. 创建指向以下位置中的matlab脚本的符号链接_【分享吧】浅析软链接与硬链接
  5. rpgmaker mv修改_吴青峰版一点点MV 释出,唱作女帝陈珊妮执导
  6. bailian 2754八皇后
  7. 短时傅里叶分析:spectrogram函数
  8. 2010年安大计算机录取名单,2021安徽大学考研拟录取名单已公布
  9. [Qt入门]模态和非模态对话框创建
  10. 【 Grey Hack 】万金油脚本:路由器漏洞检测
  11. ajax数据保存及解析
  12. Python学习入门10:零基础如何开始学习 Python?从小白变大牛!
  13. bzoj 4260 REBXOR —— Trie树
  14. dict.get 用法笔记
  15. 具体数学-第1课(递归求解实际问题)
  16. 纯javaweb项目整合quarz定时器
  17. 文字处理技术:有哪些难点?
  18. linux进程属性,linux进程属性
  19. Dell 2850服务器磁盘阵列数据恢复案例
  20. element el-select 支持拼音码和中文检索 检索的时候必须加属性 filterable

热门文章

  1. 开启多媒体台式计算机过程,计算机硬件的组成多媒体教学课件制作
  2. java删除第一个节点_访问单个节点的删除(Java)
  3. win服务器管理器“丢失”了怎么办?
  4. jatoolsprinter web打印控件直接打印不弹出
  5. android 第三方登录 --- QQ
  6. 在Linux下安装aws命令行操作
  7. vsftpd配置文件详解[转载]
  8. Linux内核中的GPIO系统之(3):pin controller driver代码分析
  9. S3C6410 KeyPad驱动(上)
  10. linux中find命令列举,Linux中常见find命令的使用