UI自动化测试——alert

一、alert

text:获取弹出框的文本信息

accept:接受Confirm弹出框

dismiss:拒绝接受Confirm弹出框

send_keys:在Prompt消息对话框里面输入想要输入的内容

1、下拉选择框——Select类

操作步骤

    1.1、先导入Select类

    1.2、对Select类进行实例化

    1.3、定位到下拉框的元素属性

    1.4、使用Select类进行实例化后的对象调用该类里面的方法

实战步骤

# 下拉框
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的框架

2、再定位框架中的元素属性

怎么判断?

当你使用了所有的元素定位的方式并且都是正确的,但就是提示找不到,那么查看源代码是否存在iFrame的框架。如果存在,通过三种方式就可以进入到iFrame的框架:

    1.1、ID

    1.2、索引

    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()
posted @ 2022-04-07 19:19  棠小梨  阅读(107)  评论(0编辑  收藏  举报