WEB自动化测试(二)
元素属性
'''is_selected():是否勾选'''
# 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(5)
# obj.click()
# print('验证是否勾选:',obj.is_selected())
# time.sleep(5)
# driver.quit()
'''is_enabled():是否可编辑'''
# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://www.baidu.com/')
# so=driver.find_element_by_id('kw')
# print(so.is_enabled())
# time.sleep(5)
# driver.quit()
'''is_displayed():是否可隐藏'''
# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://www.baidu.com/')
# about=driver.find_element_by_link_text('关于百度')
# print(about.is_displayed())
# driver.quit()
下拉框
'''下拉框操作步骤:
1、先导入select类
2、首先对select类实例化
3、定位到下拉框的元素属性
4、使用select类进行实例化后的对象调用该类里面的方法
'''
# # 索引
from selenium import webdriver
from selenium.webdriver.support.select import Select
import time
# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('file:///D:/code/testDev/WEB%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/index(1).html')
# # webelement指的是下拉框的元素对象
# nr=driver.find_element_by_id('nr')
# obj=Select(webelement=nr)
# time.sleep(3)
# obj.select_by_index(3)
#
# time.sleep(3)
# driver.quit()
# 文本方式
from selenium import webdriver
from selenium.webdriver.support.select import Select
import time
# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('file:///D:/code/testDev/WEB%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/index(1).html')
# # webelement指的是下拉框的元素对象
# nr=driver.find_element_by_id('nr')
# obj=Select(webelement=nr)
# time.sleep(3)
# obj.select_by_visible_text('Java语言')
#
# time.sleep(3)
# driver.quit()
# value方式
from selenium import webdriver
from selenium.webdriver.support.select import Select
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/code/testDev/WEB%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/index(1).html')
# webelement指的是下拉框的元素对象
nr=driver.find_element_by_id('nr')
obj=Select(webelement=nr)
time.sleep(3)
obj.select_by_value('Java')
time.sleep(3)
driver.quit()
下拉款实战
import time
from selenium import webdriver
import time as t
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.lagou.com/')
time.sleep(3)
driver.find_element_by_id('search_input').send_keys('高级测试')
time.sleep(3)
driver.find_element_by_id('search_button').click()
time.sleep(5)
driver.find_element_by_xpath('/html/body/div[1]/div[1]/div/div[2]/div[1]/div[1]/div[2]/div/ul/li[4]').click()
time.sleep(5)
driver.find_element_by_xpath('/html/body/div[1]/div[1]/div/div[2]/div[1]/div[1]/div[2]/div/ul/li[4]/div/div/ul[2]/li[3]/span').click()
time.sleep(5)
driver.find_element_by_xpath('/html/body/div[1]/div[1]/div/div[2]/div[1]/div[1]/div[2]/div/ul/li[5]/div/span').click()
time.sleep(3)
driver.find_element_by_xpath('/html/body/div[1]/div[1]/div/div[2]/div[1]/div[1]/div[2]/div/ul/li[5]/div/div/ul[2]/li[4]/span').click()
time.sleep(5)
driver.quit()
alert学习
text:获取弹出框的文本信息
accept是接受Confirm弹出框
dismiss是拒绝接受Confirm弹出框
send_keys是在Prompt消息对话框里面输入想要输入的内容
rom selenium import webdriver
import time
'''确定取消的按钮'''
# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('file:///D:/code/testDev/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(3)
# driver.find_element_by_tag_name('input').click()
# time.sleep(3)
# # 点击确定
# driver.switch_to.alert.accept()
# time.sleep(3)
#
# #页面刷新
# driver.refresh()
#
# driver.find_element_by_tag_name('input').click()
# time.sleep(5)
# driver.switch_to.alert.dismiss()
# time.sleep(5)
# driver.quit()
'''获取警告框文本信息'''
# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('file:///D:/code/testDev/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(3)
# print(driver.switch_to.alert.text)
# time.sleep(3)
# driver.quit()
'''获取警告的文本信息'''
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/code/testDev/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(3)
driver.find_element_by_tag_name('input').click()
time.sleep(3)
# 输入内容
driver.switch_to.alert.send_keys('WEB自动化测试')
time.sleep(3)
driver.switch_to.alert.accept()
time.sleep(3)
driver.refresh()
driver.find_element_by_tag_name('input').click()
time.sleep(3)
driver.switch_to.alert.send_keys('WEB自动化测试')
time.sleep(3)
driver.switch_to.alert.dismiss()
time.sleep(3)
driver.quit()
iFrame定位
遇到iFrame框架,解决问题的思路是
1、先进入到iframe的框架
2、然后再定位框架里面的元素属性
怎么判断?
当你使用了所有元素定位的方式并且都是正确的,但是就是提升找不到。那么这个查看源码是否存在iFrame的框架。如果存在,通过三种方式可以进入到iFrame的框架:
1、通过ID
2、通过索引
3、通过name(基本不用)
from selenium import webdriver
import time as t
# id
# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://file.qq.com/')
# t.sleep(6)
# # 进入第一层的iframe
# driver.switch_to.frame('login_frame1')
# t.sleep(3)
# # 进入第二次的iframe
# driver.switch_to.frame('ptlogin_iframe')
# t.sleep(3)
# driver.find_element_by_xpath('/html/body/div[1]/div[9]/a[1]').click()
# t.sleep(3)
# driver.find_element_by_xpath('//*[@id="u"]').send_keys('9864@qq.com')
# t.sleep(3)
# driver.quit()
# 索引
# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://file.qq.com/')
# t.sleep(6)
# # 进入第一层的iframe
# driver.switch_to.frame(0)
# t.sleep(3)
# # 进入第二次的iframe
# driver.switch_to.frame(0)
# t.sleep(3)
# driver.find_element_by_xpath('/html/body/div[1]/div[9]/a[1]').click()
# t.sleep(3)
# driver.find_element_by_xpath('//*[@id="u"]').send_keys('9864@qq.com')
# t.sleep(3)
# driver.quit()
# name
# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://file.qq.com/')
# t.sleep(6)
# # 进入第一层的iframe
# driver.switch_to.frame('login_frame')
# t.sleep(3)
# # 进入第二次的iframe
# driver.switch_to.frame('ptlogin_iframe')
# t.sleep(3)
# driver.find_element_by_xpath('/html/body/div[1]/div[9]/a[1]').click()
# t.sleep(3)
# driver.find_element_by_xpath('//*[@id="u"]').send_keys('9864@qq.com')
# t.sleep(3)
# driver.quit()
鼠标事件
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time as t
# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://www.baidu.com/')
#
# # 鼠标事件进行实例化
# 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()
# t.sleep(6)
# # 点击搜索设置
# driver.find_element_by_xpath('/html/body/div[1]/div[1]/div[4]/div[1]/div/a[1]/span').click()
# t.sleep(5)
# driver.quit()
'''右键的操作'''
# 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()
# t.sleep(5)
# driver.quit()
'''双击操作'''
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
# 鼠标事件进行实例化
obj=ActionChains(driver=driver)
t.sleep(3)
driver.find_element_by_id('kw').send_keys('段舒元')
t.sleep(3)
soButton=driver.find_element_by_id('su')
obj.double_click(soButton).perform()
t.sleep(5)
driver.quit()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)