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

第一章 Selenium+WebDriver环境搭建
第二章 Selenium定位方式
第三章 元素常用属性
第四章 自动化中的三种等待
第五章 自动化浏览器设置及句柄、窗口切换操作
第六章 鼠标、键盘操作
第七章 javascript在自动化中的应用
第八章 unittest&断言
第九章 ddt数据驱动
第十章 测试框架搭建过程Python+Selenium+BeautifulReport



一、浏览器模式设置

浏览器常见模式有两种:无头模式和手机模式
无头模式:浏览器不会显示界面,程序在后台运行。
①设置无头模式:
方式一:设置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 = True
driver = webdriver.Chrome(chrome_options=options)
driver.get("https://www.baidu.com")
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("https://www.baidu.com")
driver.quit()

二、窗口大小设置

1、窗口最小化:driver.minimize_window()
2、窗口最大化:driver.maximize_window()
3、设置窗口为指定大小:driver.set_window_size(666, 666)

import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
# 窗口最大化
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 time
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
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 time
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://mail.163.com/")
time.sleep(3)
# 定位iframe
iframe = driver.find_element(By.TAG_NAME, "iframe")
# 切换进iframe
driver.switch_to.frame(iframe)
# 输入账号
driver.find_element(By.NAME, "email").send_keys("111111111")
time.sleep(3)
# 退出iframe
driver.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 time
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = 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 time
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = 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 time
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = 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()

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

  • 11
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拒绝内卷的小测试

感谢老板的投喂

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值