1.简介

用java抓取网页内容有很多种方法。

a)使用HttpClient发送请求,然后解析网页或json。

b)使用jsoup,来帮我们发请求,方便地像jquery那样抠取标签

c)使用selenium,通过浏览器加载页面。

1.1 selenium的优势

有些内容是通过ajax获取并通过js填充到dom中的,所以离开浏览器拿不到内容。

有些网站为防爬虫,用js做了特殊的运算与校验,然后服务端才会给正确的数据,所以离开浏览器拿不到正确的内容。

1.2 selenium的劣势

启动浏览器会消耗较大的系统资源,效率不会太高。

2.使用方法

以windows7+chrome+java 平台作说明。
首先安装chrome浏览器。
然后下载chromeDriver——https://sites.google.com/a/chromium.org/chromedriver/
然后写java。
依赖见下:
<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>2.42.2</version>
</dependency>
<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-chrome-driver</artifactId><version>2.42.2</version>
</dependency>

3.常用类与方法

org.openqa.selenium.chrome.ChromeDriver
此类负责启动chrome浏览器.
void org.openqa.selenium.WebDriver.get(String url)
打开一个网站.
WebElement org.openqa.selenium.WebDriver.findElement(By by)
查找element.
List<WebElement> org.openqa.selenium.WebDriver.findElements(By by)
查找符合条件的多个element.

org.openqa.selenium.By
抽象类,它的一些静态方法用于定位element.
By org.openqa.selenium.By.name(String name)
根据标签的name属性寻找.
By org.openqa.selenium.By.tagName(String name)
根据标签名寻找.
By org.openqa.selenium.By.id(String id)
根据标签的id属性寻找.
By org.openqa.selenium.By.className(String className)
根据标签的class属性寻找.

org.openqa.selenium.WebElement
接口。对应于dom中的标签.
String org.openqa.selenium.WebElement.getText()
获取标签及子标签的文本内容.
String org.openqa.selenium.WebElement.click()
触发指定元素的单击事件。

4.示例代码及工程

代码:
图4-1 根据name属性让selenium定位标签

selenium 自动化web测试相关推荐

  1. 利用 Selenium 自动化 web 测试【步骤详解】

    简介 Selenium 是一个健壮的工具集合,跨很多平台支持针对基于 web 的应用程序的测试自动化的敏捷开发.它是一个开源的.轻量级的自动化工具,很容易集成到各种项目中,支持多种编程语言,比如 .N ...

  2. 利用 Selenium 自动化 web 测试

    Selenium 是一个健壮的工具集合,跨很多平台支持针对基于 web 的应用程序的测试自动化的敏捷开发.它是一个开源的.轻量级的自动化工具,很容易集成到各种项目中,支持多种编程语言,比如 .NET. ...

  3. Python3 Selenium自动化web测试 == 第三节 常用WebDriver API使用示例上(24个API)

    前置步骤: 安装selenium,chrome驱动,Python3.6 学习目的: 常见API的使用 涉及的API: step1: 访问一个网址 step2: 网页的前进和后退 step3: 刷新当前 ...

  4. python selenium自动化断言_python+selenium自动化登录测试,设计不同场景进行登录,两种方式断言,截图保存...

    # coding : utf-8 # date :2019/1/7 # 根据不同场景做自动化登录测试 # 正确账号密码.正确账户错误密码.等其他场景 from selenium import webd ...

  5. 开源中国大佬是怎么用Selenium做自动化web测试的

    简介 Selenium 是一个健壮的工具集合,跨很多平台支持针对基于 web 的应用程序的测试自动化的敏捷开发.它是一个开源的.轻量级的自动化工具,很容易集成到各种项目中,支持多种编程语言,比如 .N ...

  6. linux网页自动化,使用 Selenium 自动化 Web 浏览器

    Selenium 是浏览器自动化的绝佳工具.使用 Selenium IDE,你可以录制命令序列(如单击.拖动和输入),验证结果并最终存储此自动化测试供日后使用.这非常适合在浏览器中进行活跃开发.但是当 ...

  7. UI自动化+web测试基础3-2,京东流程

    今天上午做了一个京东的一个项目的总体流程,仅供参考,,,没有断言的用例就是完美的用例 主要:就是首页中搜索商品,然后点击商品,然后将商品加入购物车,加入购物车后点击去购物车结算,去结算 封装类,自己定 ...

  8. WEB自动化-(RFS)RobotFramework+Selenium框架介绍测试流程详解

    各个驱动下载地址: http://www.seleniumhq.org/download/ 一.RFS介绍 1.概念 RFS框架:RobotFramework+Selenium框架 2.特点 2.1通 ...

  9. Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析

    加速IE浏览器自动化执行效率:Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析 1.技术背景       在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链 ...

  10. selenium自动化测试_Selenium测试可实现有效的测试自动化

    selenium自动化测试 尽管移动应用程序的市场份额有大幅增长,但网络应用程序仍然具有大量的用户基础. 在部署之前,企业正在关注Web应用程序的质量. 这是测试发挥重要作用的地方. 与某些可以自动化 ...

最新文章

  1. JS中的this对象详解
  2. Android 之PackageManager框架
  3. java面试题24 关于Java中的数组,
  4. python time时间戳_time和datetime时间戳---python
  5. 基于JAVA+SpringBoot+Vue+Mybatis+MYSQL的排课管理系统
  6. 到爱尔兰敲代码 / Come, Coding in Ireland
  7. Anaconda下载与安装详解
  8. 3ds Max学习指南,基本知识与基本操作,常用快捷键汇总
  9. Android基础之将毫秒换算成(天/时/分/秒/毫秒)
  10. 苹果快捷键怎么调出来_iPad常用快捷键
  11. [人工智能-深度学习-14]:神经网络基础 - 常见loss损失函数之逻辑分类,对数函数,交叉熵函数
  12. mgo EnsureIndex注意事项
  13. 服务器停机除尘VS服务器带电清洗
  14. 苹果7p服务器维护中,苹果7p无服务怎么解决
  15. 2021年最实用的12款SEO工具
  16. 数学建模(一)对变化进行建模及其解
  17. 准入控制_Kubernetes动态准入控制示例
  18. 信号与系统填空题、简答题(应试)
  19. python 解析网页xml_从网站解析Python XML
  20. 2022届校招Java面试题汇总(含题解)

热门文章

  1. 全面规范的软件需求可以规避项目风险
  2. python distance matrix_机器学习中的距离盘点
  3. 两组树形数据的比对_Python数据分析-可视化“大佬”之Seaborn
  4. pytorch nonzero_[深度学习框架]PyTorch常用代码段
  5. Mysql索引之-cardinality
  6. 如何修改默认字体_Excel技巧:怎么修改默认字体为宋体
  7. 蓝桥杯2018年第九届省赛-第几个幸运数
  8. shell命令执行操作仍需点击y确认问题的处理
  9. 用数羊的方式来解释熵
  10. php单例模式与工厂模式