2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 从零开始编写Web自动化测试脚本(五)--自动化浏览器设置及句柄 窗口切换操作

从零开始编写Web自动化测试脚本(五)--自动化浏览器设置及句柄 窗口切换操作

时间:2023-01-16 23:42:45

相关推荐

从零开始编写Web自动化测试脚本(五)--自动化浏览器设置及句柄 窗口切换操作

第一章 Selenium+WebDriver环境搭建

第二章 Selenium定位方式

第三章 元素常用属性

第四章 自动化中的三种等待

第五章 自动化浏览器设置及句柄、窗口切换操作

第六章 鼠标、键盘操作

第七章 javascript在自动化中的应用

第八章 unittest&断言

第九章 ddt数据驱动

第十章 测试框架搭建过程Python+Selenium+BeautifulReport

文章目录

一、浏览器模式设置二、窗口大小设置三、句柄操作四、切换frame操作五、弹框处理

一、浏览器模式设置

浏览器常见模式有两种:无头模式和手机模式

无头模式:浏览器不会显示界面,程序在后台运行。

①设置无头模式:

方式一:设置headless属性值,True->无头模式,False->正常模式

方式二:添加参数方法:add_argument(‘-headless’),headless->无头模式,head->正常模式

②实例化浏览器对象时注入配置选项:

driver = webdriver.Chrome(chrome_options = opts)或

driver = webdriver.Chrome(options = opts)

from selenium import webdriver# 申明一个Chrome配置对象options = webdriver.ChromeOptions()# 方式一:设置headless属性值,True->无头模式,False->正常模式options.headless = Truedriver = webdriver.Chrome(chrome_options=options)driver.get("")driver.quit()# 方式二:添加参数方法:add_argument('-headless'),headless->无头模式,head->正常模式# 申明一个Chrome配置对象options = webdriver.ChromeOptions()# 方式一:设置headless属性值,True->无头模式,False->正常模式options.add_argument('-headless')driver = webdriver.Chrome(chrome_options=options)driver.get("")driver.quit()

二、窗口大小设置

1、窗口最小化:driver.minimize_window()

2、窗口最大化:driver.maximize_window()

3、设置窗口为指定大小:driver.set_window_size(666, 666)

import timefrom selenium import webdriverdriver = webdriver.Chrome()driver.get("")# 窗口最大化driver.maximize_window()time.sleep(3)# 窗口最小化driver.minimize_window()time.sleep(3)# 指定窗口大小driver.set_window_size(666, 666)time.sleep(3)driver.quit()

三、句柄操作

1、句柄:句柄是一个是用来标识对象或者项目的标识符,可以用来描述窗体、文件等,在web中表示浏览器窗口的属性。

2、在web应用中,每一个窗口都有一个对应的唯一句柄来进行标识,如果我们切换窗口,只需获取新窗口的句柄,然后切换句柄即可。

3、每一个窗口的唯一标识,每个窗口的 句柄都不一样。

获取当前句柄:driver.current_window_handle

获取所有句柄:driver.window_handles

切换句柄:switch_to.window(句柄号)

import timefrom selenium import webdriverfrom mon.by import Bydriver = webdriver.Chrome()driver.get("")time.sleep(3)driver.find_element(By.LINK_TEXT, "新闻").click()time.sleep(3)# 获取当前句柄:driver.current_window_handle# 打印当前句柄print(driver.current_window_handle)# 获取所有句柄:handles = driver.window_handles# 打印所有句柄,返回的是一个list,后进入的窗口在list中先返回print(handles)# 切换句柄,切换至list中的最后一个句柄(最先打开的网页)driver.switch_to.window(handles[-1])# 再查看当前句柄,可以发现已经不是最开始获取的句柄了print(driver.current_window_handle)driver.quit()

四、切换frame操作

在web应用中经常会出现iframe嵌套的应用,如果想操作iframe内的元素,则必须切换进入iframe内。例如163邮箱的iframe,如图:

1、进入iframe:switch_to.frame(iframe元素)

2、退出当前iframe:switch_to.default_content()

import timefrom selenium import webdriverfrom mon.by import Bydriver = webdriver.Chrome()driver.get("/")time.sleep(3)# 定位iframeiframe = driver.find_element(By.TAG_NAME, "iframe")# 切换进iframedriver.switch_to.frame(iframe)# 输入账号driver.find_element(By.NAME, "email").send_keys("111111111")time.sleep(3)# 退出iframedriver.switch_to.default_content()driver.quit()

五、弹框处理

(一)弹框

1、alert弹框:如图

2、confirm弹框,如图:

3、prompt弹框,如图:

(二)弹框操作方法

1、切换到弹框内:driver.switch_to.alert

2、点击"确定 按钮:alert.accept()

3、点击"取消"按钮:alert.dismiss()

4、输入文本:alert.send_keys()

5、获取文本:alert.text

(三)弹框操作

弹框操作练习文件

1、alert操作:

url = "file://本地文件路径/Alter.html" # 文件上方可取import timefrom selenium import webdriverfrom mon.by import Bydriver = webdriver.Chrome()driver.get(url)time.sleep(3)# 点击alert元素,弹出弹框driver.find_element(By.ID, "alert").click()time.sleep(3)# 切换到alert弹框alert = driver.switch_to.alert# 打印弹框内文本print(alert.text)# 点击弹框确定按钮alert.accept()time.sleep(3)driver.quit()

2、confirm弹框:

url = "file://本地文件路径/Alter.html" # 文件上方可取import timefrom selenium import webdriverfrom mon.by import Bydriver = webdriver.Chrome()driver.get(url)time.sleep(3)# 点击confirm元素,弹出弹框driver.find_element(By.ID, "confirm").click()time.sleep(3)# 切换到confirm弹框alert = driver.switch_to.alert# 打印弹框内文本print(alert.text)# 点击弹框确定按钮# alert.accept()# 点击弹框取消按钮alert.dismiss()time.sleep(3)driver.quit()

3、prompt弹框:

url = "file://本地文件路径/Alter.html" # 文件上方可取import timefrom selenium import webdriverfrom mon.by import Bydriver = webdriver.Chrome()driver.get(url)time.sleep(3)# 点击prompt元素,弹出弹框driver.find_element(By.ID, "prompt").click()time.sleep(3)# 切换到prompt弹框alert = driver.switch_to.alert# 打印弹框内文本print(alert.text)# 输入文本内容alert.send_keys("点个赞吧!")time.sleep(3)# 点击弹框确定按钮alert.accept()driver.quit()

随手点赞一次,运气增加一份。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。