UI自动化测试4.7
作者:互联网
元素属性
# 是否勾选is_selected()
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://mail.sina.com.cn/')
obj=driver.find_element_by_id('store1')
print(obj.is_selected())
time.sleep(3)
obj.click()
time.sleep(4)
print(obj.is_selected())
driver.quit()
# is_displayed()确认是否隐藏
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
# about=driver.find_element_by_xpath('//*[@id="bottom_layer"]/div/p[1]/a')
about=driver.find_element_by_link_text('关于百度')
print(about.is_displayed())
driver.quit()
# 是否可编辑is_enabled()
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
so=driver.find_element_by_id('kw')
print(so.is_enabled())
driver.quit()
alert学习
弹出框交互
text:获取弹出框的文本信息
accept是接受Confirm弹出框
dismiss是拒绝接受Confirm弹出框
send_key是在Prompt消息对话框里面输入想要输入的内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
function disp_confirm()
{
var r=confirm("请您点击按钮!")
if(r==true)
{
document.write("您点击了确认按钮")
}
else
{
document.write("您点击了取消按钮")
}
}
</script>
</head>
<body>
# 实现测试页面的html代码如上
# 弹出框里面确定取消按钮
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/CODE/TESTDEV1/WEB%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/%E7%A1%AE%E5%AE%9A%E6%B6%88%E6%81%AF.html')
time.sleep(5)
driver.find_element_by_tag_name('input').click()
time.sleep(5)
# 点击确定按钮
driver.switch_to.alert.accept()
time.sleep(5)
driver.refresh()
time.sleep(5)
driver.find_element_by_tag_name('input').click()
time.sleep(5)
# 点击取消按钮
driver.switch_to.alert.dismiss()
time.sleep(5)
driver.quit()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
alert("这是一个警告框!")
</script>
</head>
<body>
</body>
</html>
# 实现测试页面的html代码如上
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/CODE/TESTDEV1/WEB%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/%E8%AD%A6%E5%91%8A%E6%A1%86.html')
time.sleep(5)
# 获取警告框里面的文本信息
print(driver.switch_to.alert.text)
driver.quit()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
function disp_prompt()
{
var name=prompt("请输入您的姓名:","")
if(name!=null && name!="")
{
document.write("Hello "+name+"!")
}
}
</script>
</head>
<body>
<center>
<input type="button" onclick="disp_prompt()" value="请点击我!">
</center>
</body>
</html>
# 实现测试页面的html代码如上
# 消息对话框
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/CODE/TESTDEV1/WEB%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/%E6%B6%88%E6%81%AF%E5%AF%B9%E8%AF%9D%E6%A1%86.html')
time.sleep(5)
driver.find_element_by_tag_name('input').click()
time.sleep(5)
driver.switch_to.alert.send_keys('xiaoming')
time.sleep(5)
driver.switch_to.alert.accept()
time.sleep(5)
driver.refresh()
driver.find_element_by_tag_name('input').click()
time.sleep(5)
driver.switch_to.alert.send_keys('xiaoming')
time.sleep(5)
driver.switch_to.alert.dismiss()
time.sleep(5)
driver.quit()
下拉框:
下拉框操作步骤:
1、先导入Select类
2、首先对Select类进行实例化
3、定位到下拉框的元素属性
4、使用Select类进行实例化的对象调用该类里面的方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<center>
喜欢的编程语言:
<select id="nr">
<option value="" selected>请选择您喜欢的编程语言</option>
<option value="Python">Python语言</option>
<option value="Go">Go语言</option>
<option value="Java">Java语言</option>
</select>
</center>
</body>
</html>
# 实现测试页面的html代码如上
# 下拉框
from selenium.webdriver.support.select import Select
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/CODE/TESTDEV1/WEB%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/index(1).html')
nr=driver.find_element_by_id('nr')
# Select进行实例化 webelement下拉框的元素属性
obj=Select(webelement=nr)
time.sleep(5)
# 通过检索的方式
# obj.select_by_index(3)
# 通过value方式
obj.select_by_value('Java')
time.sleep(5)
# 通过文本的方式
obj.select_by_visible_text('Go语言')
time.sleep(5)
driver.quit()
iFrame定位:
遇到iFrame框架,解决问题的思路是:
1、先进入到iframe的框架
2、然后再定位框架里面的元素属性
怎么判断是在iFrame框架里?
当你使用了所有的元素定位的方式并且都是正确的,但是就是提示找不到。那么这个查看源码是否存在iframe的框架。如果存在,通过三种可以进入到iframe的框架:
1、通过ID
2、通过索引
3、通过name(基本不使用这个)
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://file.qq.com/')
time.sleep(6)
# 进入第一层的iframe
driver.switch_to.frame('login_frame1')
time.sleep(5)
# 进入第二层的iframe
driver.switch_to.frame('ptlogin_iframe')
time.sleep(5)
driver.find_element_by_id('switcher_plogin').click()
driver.find_element_by_id('u').send_keys('1721219991@qq.com')
time.sleep(5)
driver.quit()
# 鼠标事件
from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
#鼠标事件进行实例化
obj=ActionChains(driver=driver)
setting=driver.find_element_by_xpath('//*[@id="s-usersetting-top"]')
# 悬浮框操作
obj.move_to_element(setting).perform()
time.sleep(6)
driver.find_element_by_xpath('//*[@id="s-user-setting-menu"]/div/a[1]/span').click()
time.sleep(5)
driver.quit()
# 右键操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
obj=ActionChains(driver=driver)
so=driver.find_element_by_id('kw')
# 进行右键操作
obj.context_click(so).perform()
time.sleep(5)
driver.quit()
# 双击操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
obj=ActionChains(driver=driver)
time.sleep(5)
driver.find_element_by_id('kw').send_keys('接口测试')
time.sleep(5)
so=driver.find_element_by_id('su')
# 双击操作
obj.double_click(so).perform()
time.sleep(5)
driver.quit()
不标准的下拉框实战:
# 下拉框实战
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.lagou.com/')
driver.find_element_by_id('search_input').send_keys('接口测试')
time.sleep(5)
driver.find_element_by_id('search_button').click()
time.sleep(3)
driver.find_element_by_xpath('//*[@id="jobsContainer"]/div[2]/div[1]/div[1]/div[2]/div/ul/li[4]/div/span').click()
time.sleep(5)
driver.find_element_by_id('//*[@id="jobsContainer"]/div[2]/div[1]/div[1]/div[2]/div/ul/li[4]/div/div/ul[2]/li[1]/span').click()
time.sleep(5)
driver.quit()
标签:4.7,selenium,自动化,driver,element,UI,time,sleep,find 来源: https://www.cnblogs.com/zhanghong23/p/16113354.html