ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

UI自动化测试4.7

2022-04-07 19:34:19  阅读:190  来源: 互联网

标签:4.7 selenium 自动化 driver element UI time sleep find


元素属性

# 是否勾选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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有