栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

第一章 Selenium+WebDriver环境搭建
第二章 Selenium定位方式
第三章 元素常用属性
第四章 自动化中的三种等待
第五章 自动化浏览器设置及句柄、窗口切换操作
第六章 鼠标、键盘操作


文章目录
  • 一、浏览器模式设置
  • 二、窗口大小设置
  • 三、句柄操作
  • 四、切换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 = 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()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/857906.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号