第一章 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()
随手点赞一次,运气增加一份。