User Tools

Site Tools


selenium

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
selenium [2018/02/07 10:27]
伟伟7717
selenium [2023/03/08 16:09] (current)
xujianglong ↷ Page moved from 内部资料:selenium to selenium
Line 1: Line 1:
- **  *自动化测试 之 selenium2.**\\ +====== 简介 ====
-\\ +
-**====== 简介 ====== +
-*\\ +
-*__     selenium2是在其一代的基础上,结合了webdriver,它提供了完全另外的一种方式与浏览器交互。那就是利用浏览器原生的API,封装成一套更加面向对象的Selenium WebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的)。由于使用的是浏览器原生的API,速度大大提高,而且调用的稳定性交给了浏览器厂商本身,显然是更加科学。然而带来的一些副作用就是,不同的浏览器厂商,对Web元素的操作和呈现多少会有一些差异,这就直接导致了Selenium WebDriver要分浏览器厂商不同,而提供不同的实现。例如Firefox就有专门的FirefoxDriver,Chrome就有专门的ChromeDriver等等。。__\\ +
-\\+
  
-====== 配置 ====  +*%%__%% selenium2是在其一代的基础上,结合了webdriver,它提供了完全另外的一种方式与浏览器交互。那就是利用浏览器原生的API,封装成一套更加面向对象的Selenium WebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的)。由于使用的是浏览器原生的API,速度大大提高,而且调用的稳定性交给了浏览器厂商本身,显然是更加科学。然而带来的一些副作用就是,不同的浏览器厂商,对Web元素的操作和呈现多少会有一些差异,这就直接导致了Selenium WebDriver要分浏览器厂商不同,而提供不同的实现。例如Firefox就有专门的FirefoxDriver,Chrome就有专门的ChromeDriver等等。。%%__%%\ \
-\\+
  
-*selenium2+java:[[https://www.cnblogs.com/mytesting/p/8409815.html|selenium2+java+idea配置]]\\ +====== 配置 ====
-*selenium2+python:[[https://www.cnblogs.com/yoyoketang/p/selenium.html|selenium2+python配置]]\\ +
-\\+
  
-# 入门+//selenium2+java:[[https:%%//%%www.cnblogs.com/mytesting/p/8409815.html|selenium2+java+idea配置]]\ //selenium2+python:[[https:%%//%%www.cnblogs.com/yoyoketang/p/selenium.html|selenium2+python配置]]\ \
  
-\\ +====== 入门 ======
-学习使用selenium2很简单,你需要掌握:\\ +
-  * 网页元素捕捉\\ +
-  * 浏览器控制\\ +
-  * 简单元素操作\\ +
-  * 各种键盘事件\\ +
-  * 各种鼠标事件\\ +
-  * 获得验证信息\\ +
-  * 设置元素等待\\ +
- 以上教程:[[https://www.cnblogs.com/hellokitty1/p/6295843.html?utm_source=itdadao&utm_medium=referral|selenium2使用入门]]\\ +
-  +
-当你要尝试真正使用它时\\ +
-  * 只有正确定位到相应的页面,才可以任意操作页面内的元素。不同的web程序前端结构稍有差异,所以需要清楚的了解前端页面的布局结构。 当你无法捕捉到元素时,第一反应应该检查是否定位到了相应的页面内。\\ +
-  * 捕捉元素时首选 by.id name class,如果没有这个三个属性,可以尝试取得前端修改权限,自己加上去,万不得已时可以使用xpath,css等。当前端页面结构改变时这些捕捉方式就有失效的风险。\\ +
-  * 对页面元素的操作方式非常广泛,包括键盘上的所有输入按键和基本控制按键(空格 退格 回车......),鼠标的双次点击,悬停,滚轮等......\\ +
-   +
-          +
  
 +学习使用selenium2很简单,你需要掌握:\ * 网页元素捕捉\ * 浏览器控制\ * 简单元素操作\ * 各种键盘事件\ * 各种鼠标事件\ * 获得验证信息\ * 设置元素等待\ 以上教程:[[https:%%//%%www.cnblogs.com/hellokitty1/p/6295843.html?utm_source=itdadao&utm_medium=referral|selenium2使用入门]]\
  
 +当你要尝试真正使用它时 注意\ * 对业务需求本身的的足够了是所有自动化测试(包括大部分非自动化测试)的前提。 * 只有正确定位到相应的页面,才可以任意操作页面内的元素。不同的web程序前端结构稍有差异,所以需要清楚的了解前端页面的布局结构。 当你无法捕捉到元素时,第一反应应该检查是否定位到了相应的页面内。%%//%%具体参考:%%//%%[[http:%%//%%blog.csdn.net/huilan_same/article/details/52200586|iframe页面定位详解]] \ * 捕捉元素时首选 by.id name class,如果没有这个三个属性,可以尝试取得前端修改权限,自己加上去,万不得已时可以使用xpath,css等。当前端页面结构改变时这些捕捉方式就有失效的风险。\ * 对页面元素的操作方式比你预想的更加广泛,包括键盘上的所有输入按键和基本控制按键(空格 退格 回车......),鼠标的双次点击,悬停,滚轮等......\ ====== 设计 ==== 设计测试代码的过程,本质上类似软件开发的过程,最关键的是最初的需求分析,以下若干条经验之谈希望为你提供一些参考:\ * 针对性的设计:大部分情况下,最初试图将自动化测试代码:%%//%%涵盖系统的所有功能模块%%//%% 或者 %%//%%只测试系统的单个模块%%//%% 的想法都是不合理的,最初的需求设计应该从业务的角度出发,将一个系统中的某个业务涵盖的若干个模块提取 抽象 组合起来,让测试代码为一串单独的业务进行服务,业务过程中人工键盘输入操作 机械性重复操作越多,自动化测试的价值越大。 * 有选择性的抽象:如果一个业务中的各个测试模块内的功能被紧密封装,相互之间关联性很低(高内聚,低耦合)。此时适合将各个功能和重复性操作层层封装,甚至各个模块自由组合,减少工作量,提高代码的可维护性。如果一个业务中的各个测试模块功能数据相互关联,此时过分的抽象会耗掉大量的时间和精力,大幅度增加设计难度。 * 精力的取舍:自动化测试设计永远先考虑 %%//%%代码设计的精力投入和回报比例%%//%%,再考虑 %%//%%具体的代码设计%%//%%。 * 自动化测试的价值:目前来看,自动化测试远没有想象的那样智能,大多数情况下无法指望它能代替人完成精准、详尽的测试,但是%%//%%它可以在你完成精准、详尽的测试的过程中 代替你完成那些大量枯燥费时的机械性操作%%//%%。
  
  
- 
- 
- 
-    
selenium.1517970441.txt.gz · Last modified: 2021/02/10 21:29 (external edit)