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定位标签



目录
相关文章
|
6天前
|
敏捷开发 测试技术 持续交付
探索软件测试中的自动化与持续集成
在快速迭代的软件开发环境中,自动化测试和持续集成(CI)已成为确保产品质量和加速交付的关键策略。本文将深入探讨自动化测试的基本原理、实施步骤以及它如何与持续集成流程相结合,以提高软件开发的效率和可靠性。我们将通过实际案例分析,展示自动化测试和CI的最佳实践,以及它们如何帮助企业实现更快的市场响应时间和更高的客户满意度。
43 16
|
4天前
|
数据采集 测试技术 Python
自动化淘宝秒杀:使用Selenium WebDriver的实战指南
本文详细介绍了如何利用Selenium WebDriver自动化淘宝秒杀操作,包括环境配置、代码实现及注意事项,旨在帮助读者提升秒杀成功率,同时提醒合理使用以遵守平台规则。
39 8
|
8天前
|
jenkins 测试技术 持续交付
软件测试中的自动化与持续集成:提升效率与质量的关键
在快节奏的软件开发环境中,自动化测试和持续集成已经成为不可或缺的部分。本文将探讨自动化测试和持续集成的重要性,以及它们如何协同工作以提高软件开发的效率和质量。通过分析自动化测试的策略、工具选择以及持续集成的实践,我们将揭示这些技术如何帮助开发团队快速响应变化,减少错误,并加速产品上市时间。
|
7天前
|
人工智能 前端开发 测试技术
探索软件测试中的自动化框架选择与优化策略####
本文深入剖析了当前主流的自动化测试框架,通过对比分析各自的优势、局限性及适用场景,为读者提供了一套系统性的选择与优化指南。文章首先概述了自动化测试的重要性及其在软件开发生命周期中的位置,接着逐一探讨了Selenium、Appium、Cypress等热门框架的特点,并通过实际案例展示了如何根据项目需求灵活选用与配置框架,以提升测试效率和质量。最后,文章还分享了若干最佳实践和未来趋势预测,旨在帮助测试工程师更好地应对复杂多变的测试环境。 ####
29 4
|
7天前
|
机器学习/深度学习 人工智能 jenkins
软件测试中的自动化与持续集成实践
在快速迭代的软件开发过程中,自动化测试和持续集成(CI)是确保代码质量和加速产品上市的关键。本文探讨了自动化测试的重要性、常见的自动化测试工具以及如何将自动化测试整合到持续集成流程中,以提高软件测试的效率和可靠性。通过案例分析,展示了自动化测试和持续集成在实际项目中的应用效果,并提供了实施建议。
|
13天前
|
机器学习/深度学习 前端开发 测试技术
探索软件测试中的自动化测试框架选择与优化策略####
本文深入探讨了在当前软件开发生命周期中,自动化测试框架的选择对于提升测试效率、保障产品质量的重要性。通过分析市场上主流的自动化测试工具,如Selenium、Appium、Jest等,结合具体项目需求,提出了一套系统化的选型与优化策略。文章首先概述了自动化测试的基本原理及其在现代软件开发中的角色变迁,随后详细对比了各主流框架的功能特点、适用场景及优缺点,最后基于实际案例,阐述了如何根据项目特性量身定制自动化测试解决方案,并给出了持续集成/持续部署(CI/CD)环境下的最佳实践建议。 --- ####
|
3天前
|
敏捷开发 Java 测试技术
软件测试中的自动化策略与实践
在快速迭代的软件开发周期中,自动化测试是确保产品质量和提升开发效率的关键。本文将深入探讨自动化测试的重要性,介绍实用的自动化测试框架,并通过一个具体的代码示例,说明如何实现一个简单的自动化测试脚本。
21 12
|
10天前
|
测试技术 持续交付 Docker
探索软件测试中的自动化策略与挑战
在当今快节奏的软件开发周期中,自动化测试已成为提高产品质量和缩短上市时间的关键。然而,实施有效的自动化测试策略并非易事,它面临着技术选型、脚本维护、环境配置等一系列挑战。本文深入探讨了自动化测试的重要性,分析了常见的自动化测试工具和框架,并讨论了在构建和维护自动化测试体系过程中遇到的主要难题及其解决方案。通过案例分析,本文旨在为软件测试工程师提供实用的指导和建议,以优化他们的自动化测试实践。
|
10天前
|
安全 前端开发 测试技术
如何选择合适的自动化安全测试工具
选择合适的自动化安全测试工具需考虑多个因素,包括项目需求、测试目标、系统类型和技术栈,工具的功能特性、市场评价、成本和许可,以及集成性、误报率、社区支持、易用性和安全性。综合评估这些因素,可确保所选工具满足项目需求和团队能力。
|
10天前
|
机器学习/深度学习 SQL 安全
如何确保自动化安全测试的全面性和准确性?
如何确保自动化安全测试的全面性和准确性?

热门文章

最新文章

下一篇
无影云桌面