从零开始编写Web自动化测试脚本

从零开始编写Web自动化测试脚本,第1张

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


文章目录
  • 一、浏览器模式设置
  • 二、窗口大小设置
  • 三、句柄 *** 作
  • 四、切换frame *** 作
  • 五、d框处理


一、浏览器模式设置

浏览器常见模式有两种:无头模式和手机模式
无头模式:浏览器不会显示界面,程序在后台运行。
①设置无头模式:
方式一:设置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()
五、d框处理

(一)d框
1、alertd框:如图

2、confirmd框,如图:

3、promptd框,如图:

(二)d框 *** 作方法
1、切换到d框内:driver.switch_to.alert
2、点击"确定 按钮:alert.accept()
3、点击"取消"按钮:alert.dismiss()
4、输入文本:alert.send_keys()
5、获取文本:alert.text

(三)d框 *** 作
d框 *** 作练习文件
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元素,d出d框
driver.find_element(By.ID, "alert").click()
time.sleep(3)
# 切换到alertd框
alert = driver.switch_to.alert
# 打印d框内文本
print(alert.text)
# 点击d框确定按钮
alert.accept()
time.sleep(3)
driver.quit()

2、confirmd框:

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元素,d出d框
driver.find_element(By.ID, "confirm").click()
time.sleep(3)
# 切换到confirmd框
alert = driver.switch_to.alert
# 打印d框内文本
print(alert.text)
# 点击d框确定按钮
# alert.accept()
# 点击d框取消按钮
alert.dismiss()
time.sleep(3)
driver.quit()

3、promptd框:

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元素,d出d框
driver.find_element(By.ID, "prompt").click()
time.sleep(3)
# 切换到promptd框
alert = driver.switch_to.alert
# 打印d框内文本
print(alert.text)
# 输入文本内容
alert.send_keys("点个赞吧!")
time.sleep(3)
# 点击d框确定按钮
alert.accept()
driver.quit()

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/798431.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存