selenium 自动化web测试

简介: 1.简介 用java抓取网页内容有很多种方法。 a)使用HttpClient发送请求,然后解析网页或json。 b)使用jsoup,来帮我们发请求,方便地像jquery那样抠取标签 c)使用selenium,通过浏览器加载页面。 1.1 selenium的优势 有些内容是通过ajax获取并通过js填充到dom中的,所以离开浏览器拿不到内容。 有些网站为防爬虫,用js做了特殊的

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浏览器。
然后写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定位标签



目录
相关文章
|
3天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
58 16
Selenium:强大的 Web 自动化测试工具
|
2天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE是开源的Web自动化测试工具,适用于Chrome、Firefox等多款浏览器。它提供简单的录制与回放功能,用户可通过录制浏览器操作自动生成测试脚本,支持导出为多种编程语言,便于非专业测试人员快速上手,有效提升测试效率与质量。
34 6
Selenium IDE:Web自动化测试的得力助手
|
1天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
38 18
Selenium IDE:Web自动化测试的得力助手
|
2月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
143 3
|
1月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
153 45
|
14天前
|
存储 前端开发 JavaScript
如何在项目中高效地进行 Web 组件化开发
高效地进行 Web 组件化开发需要从多个方面入手,通过明确目标、合理规划、规范开发、加强测试等一系列措施,实现组件的高效管理和利用,从而提高项目的整体开发效率和质量,为用户提供更好的体验。
24 7
|
18天前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
|
17天前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
31 2
|
1月前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
44 1
|
1月前
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。