dcsxlh

导航

 

1、什么是ui自动化?

通过模拟手工操作用户ui页面的方式,用代码去实现自动化操作和验证的行为。

2、ui自动化的优点?

(1)解决重复性的功能测试和验证

(2)减少测试人员在回归测试时用例漏测和验证点的漏测

(3)减少冒烟测试,回归测试的人力成本,节省时间,提高测试效率

3、ui自动化缺点?

(1)需求不稳定,比如,敏捷开发速度快,ui频繁变更,定位不稳定,提高了用例维护的成本

(2)用例的覆盖率少,占用例总数的10%-30%

(3)场景覆盖占当前功能场景70%-80%

4、ui自动化和功能测试那个更重要?

都重要

原因:(1)功能测试是基础,在熟悉功能的前提下才能做好ui自动化

5、安装selenium

、安装selenium命令(在dos命令中cmd )
pip install selenium==3.141.0 (python3中pip.exe默认在python的Scripts路径下)

 


2、可使用以下命令查看是否安装成功:
pip list

 


4、pycharm安装selenium

 在安装谷歌浏览器,安装驱动

 

对应版本镜像链接1:http://chromedriver.storage.googleapis.com/index.html

对应版本镜像链接2:https://registry.npmmirror.com/binary.html?path=chromedriver/

谷歌下载低版本:https://downzen.com/en/windows/google-chrome/versions/ 不同版本的谷https://googlechromelabs.github.io/chrome-for-testing/#stable 最新版本Google驱动歌

安装谷歌,在安装驱动

 在调试:

from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
dx=webdriver.Chrome() #创建谷歌对象
dx.get("https://www.baidu.com/") #通过对象.get 打开网站
三、语句
1、打开页面方法
(1)get 方法

 get 覆盖窗口

from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
import time
dx=webdriver.Chrome() #创建谷歌对象
dx.get("https://www.baidu.com/") #通过对象.get 打开网站
time.sleep(3)
dx.get("https://www.jd.com/")

 

(2)另开窗口

window.open  

案例:

from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
import time
dx=webdriver.Chrome() #创建谷歌对象
dx.get("https://www.baidu.com/") #通过对象.get 打开网站
time.sleep(3)
jb="window.open('https://www.jd.com/')"
ck=dx.execute_script(jb)

 (二)

1、时间等待中的三种

1.1强制等待 sleep(xx) 例如:time.sleep(10)

1.2.隐性等待 implicitly_wait(xx) 例如:driver.implicitly_wait(10)

1.3.显性等待 WebDriverWait

UI自动化测试中的等待方式主要有三种:强制等待、隐性等待和显性等待。下面将分别对这三种等待方式进行详细介绍:

 1. 强制等待

定义:强制性让代码等待固定的时间,等待时间结束后继续执行下一步操作。
实现方式:通常使用Python的内置time模块提供的`time.sleep()`方法

例如,time.sleep(5)`表示强制性等待5秒时间。

优缺点:强制等待的缺点是显而易见的,即不管页面元素是否加载完成,都会等待指定的时间,这可能会导致不必要的等待时间,增加程序的执行时间。其优点则是实现简单,不需要额外的条件判断。

 

2. 隐性等待

定义:设置最长的等待时间,等待页面元素加载完成。若在最长等待时间内完成加载,则继续下一步操作;若超过最长等待时间,则跳出等待继续下一步。
实现方式:隐性等待通常使用Selenium库中的`WebDriver`对象的`implicitly_wait()`方法。例如,

driver.implicitly_wait(20)`表示设置隐性等待时间为20秒。
优缺点:隐性等待的优点是设置一次后全局生效,不需要在每个元素等待时都进行设置。此外,当元素加载完成时,会立即继续执行,不会浪费时间。但其缺点是只能用于等待元素的出现,不能用于等待元素的其他状态(如可见、可点击等)。此外,窗口切换的等待不能引用隐性等待。

 

3. 显性等待

定义:在某个已设定的特定条件中,等待指定的时间,并在等待期间不断检查条件是否满足。若条件满足,则跳入下一步操作;若超过最大等待时间,则抛出异常。
实现方式:显性等待通常使用Selenium库中的`WebDriverWait`类。例如,`WebDriverWait(driver, timeout, poll_frequency).until(EC.visibility_of_element_located(locator))`表示等待最长`timeout`时间,每隔`poll_frequency`秒检查一次条件`EC.visibility_of_element_located(locator)`是否满足(即元素是否可见)。
优缺点:显性等待的优点是灵活性强,可以根据需要设置不同的等待条件和等待时间。同时,它还可以等待元素的其他状态(如可见、可点击等),提高了测试的准确性。但其缺点是相对复杂,需要编写更多的代码。

在实际应用中,可以根据测试需求和页面元素加载的特点选择合适的等待方式。例如,对于简单的页面加载,可以使用强制等待或隐性等待;对于复杂的页面交互和元素状态检查,则建议使用显性等待。

四、刷新页面

refresh()  

 (5)back 返回上一页

 (6)forward  切换到下一页

 

from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
import time
dx=webdriver.Chrome() #创建谷歌对象
dx.get("https://www.baidu.com/") #
time.sleep(5)
dx.get("https://www.jd.com/") #
time.sleep(2)
dx.back() #返回上一页
time.sleep(2)
dx.forward() #切换到下一页

 (7)set_window_size  设置窗口大小

 (8)窗口最大化

maximize_window()

 (9)

get_screenshot_as_file  截屏

 (10)退出:

close  关闭当前窗口

from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
import time
dx=webdriver.Chrome() #创建谷歌对象
dx.get("https://www.baidu.com/") #通过对象.get 打开网站
dx.implicitly_wait(50)
jb="window.open('https://www.jd.com/')"
ck=dx.execute_script(jb)
print(dx.title) #打印抬头
dx.close() #关闭浏览器

quit  关闭所有窗口

from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
import time
dx=webdriver.Chrome() #创建谷歌对象
dx.get("https://www.baidu.com/") #通过对象.get 打开网站
dx.implicitly_wait(50)
jb="window.open('https://www.jd.com/')"
ck=dx.execute_script(jb)
print(dx.title) #打印抬头
dx.quit() #关闭浏览器
posted on 2025-05-21 10:05  多测师_肖sir  阅读(34)  评论(0)    收藏  举报