UI自动化测试——alert
一、alert
text:获取弹出框的文本信息
accept:接受Confirm弹出框
dismiss:拒绝接受Confirm弹出框
send_keys:在Prompt消息对话框里面输入想要输入的内容
1、下拉选择框——Select类
操作步骤
1.1、先导入Select类
1.2、对Select类进行实例化
1.3、定位到下拉框的元素属性
# 下拉框 from selenium import webdriver
# selenium、webdriver、support都是包,select是模块,Select是类 from selenium.webdriver.support.select import Select import time
driver=webdriver.Chrome() driver.maximize_window() driver.get("file:///D:/%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/Python/index.html") # 选择框ID nr=driver.find_element_by_id("nr") # webelement指的是下拉框的元素属性对象 obj=Select(webelement=nr) time.sleep(2)
# 有三种方式可以定位需要元素的信息,操作时选择一种 # 1、索引 obj.select_by_index(1) # 2、文本 # obj.select_by_visible_text("Go语言") # 3、value # obj.select_by_value("Python") time.sleep(2)
# 文本框中首先出现Python语言,其次出现Go语言 obj.select_by_index(2) time.sleep(4) driver.quit()
2、弹出框:Alert类
2.1、接受和拒绝接受
from selenium import webdriver import time driver=webdriver.Chrome() driver.maximize_window() # 放置地址:D:\学习资料\Python driver.get("file:///D:/%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/Python/%E7%A1%AE%E5%AE%9A%E6%B6%88%E6%81%AF.html") time.sleep(3) driver.find_element_by_tag_name("input").click() time.sleep(3) # 点击确定accept() driver.switch_to.alert.accept() time.sleep(3) # 页面刷新—refresh() driver.refresh() driver.find_element_by_tag_name("input").click() time.sleep(3) # 拒绝接受dismiss() driver.switch_to.alert.dismiss() time.sleep(3) driver.quit()
2.2、警告框
# 导入 driver.get("file:///D:/%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/Python/%E8%AD%A6%E5%91%8A%E6%A1%86.html") time.sleep(4) # witch_to:切换,alert:类 print(driver.switch_to.alert.text) time.sleep(4) driver.quit()
2.3、消息对话框
# 消息对话框 driver.get("file:///D:/%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/Python/%E6%B6%88%E6%81%AF%E5%AF%B9%E8%AF%9D%E6%A1%86.html") time.sleep(2) driver.find_element_by_tag_name("input").click() time.sleep(2) # 输入内容 driver.switch_to.alert.send_keys("自动化测试") time.sleep(2) # 点击确定按钮 driver.switch_to.alert.accept() time.sleep(2) # 刷新页面 driver.refresh() driver.find_element_by_tag_name("input").click() time.sleep(2) driver.switch_to.alert.send_keys("自动化测试") time.sleep(2) driver.switch_to.alert.dismiss() time.sleep(4) driver.quit()
二、iFrame框架
1、遇到iFrame框架,解决思路是
1、先进入到iframe的框架
怎么判断?
1.1、ID
1.3、name(基本不使用)
2、实战操作——腾讯文件
from selenium import webdriver import time as t driver=webdriver.Chrome() driver.maximize_window() driver.get("https://file.qq.com/") t.sleep(6)
# 进入到第一层的iframe driver.switch_to.frame("login_frame") t.sleep(2)
# 进入到第二层的iframe driver.switch_to.frame("ptlogin_iframe") t.sleep(2) driver.find_element_by_id("switcher_plogin").click() t.sleep(2) driver.find_element_by_id("u").send_keys('2256520569@qq.com') t.sleep(2) driver.quit()
三、鼠标事件:ActionChains
1、悬浮框
# 导入后获取百度网址信息 # 鼠标事件实例化 obj=ActionChains(driver=driver)
# 要定位的元素属性的对象 setting=driver.find_element_by_xpath("/html/body/div[1]/div[1]/div[4]/span") obj.move_to_element(setting).perform()
# 点击搜索设置 driver.find_element_by_xpath("/html/body/div[1]/div[1]/div[4]/div[1]/div/a[1]/span").click() t.sleep(2) driver.quit()
2、右键操作——context_click
obj=ActionChains(driver=driver)
#定义名称:so,执行:perform
so=driver.find_element_by_id("kw")
obj.context_click(so).perform()
t.sleep(2)
driver.quit()
3、双击操作——double_click()
obj=ActionChains(driver=driver) t.sleep(6) driver.find_element_by_id("kw").send_keys("西安最新疫情") t.sleep(2)
# 定义名称:soButton
soButton=driver.find_element_by_id("su")
obj.double_click(soButton).perform()
t.sleep(2)
driver.quit()