python+selenium自动化测试框架中页面操作总结

系统 1503 0

Python+selenium是当前常用的自动化测试环境之一,在自动化测试框架中,常用的是POM模型,下面是对常用的页面操作的总结:

1、输入框:
 

            
              from selenium import webdriver

#定位文本框
tk=driver.get_element_by_id("id")
#清空文本框
tk.clear()
#文本框中输入内容
tk.send_keys("value")
            
          

2、下拉选择框

a、通过select进行定位下拉框------通过代码段定位

            
              #导入Select方法
from selenium.webdriver.support.select import Select
#通过index进行选择
Select(driver.find_element_by_id("id")).select_by_index("index")
#通过value进行选择
Select(driver.find_element_by_id("id")).select_by_value("value")
#通过选项文字进行选择
Select(driver.find_element_by_id("id")).select_by_visible_text("visible_text")
            
          

b、定位非

            
              #先定位到下拉菜单
select1=driver.find_element_by_id("id")
#在对下拉菜单中的选项进行选择
select1.find_element_by_id("id1").click()
            
          

3、取消下拉框选择---------select提供了四种方法取消选择

            
              deselect_by_index(index)
deselect_by_value(value)
deselect_by_visible_text(visible_text)
deselect_all()
            
          

4、单选框

            
              import webdriver

#找到单选框元素
radio_button=driver.find_element_by_id("id")
#选中单选框
radio_button.click()
#清空单选框
radio_button.clear()
#判断某个单选框是否已被选择,返回值为Boolean类型
radio_button.is_selected()
            
          

5、多选框-----复选框的type=checkbox,这里可以用xpath语法:.//*[@type='checkbox']

            
              #find_elements是不能直接点击的,它是复数的,所以只能先获取到所有的checkbox对象,然后通过for循环去一个个点击操作
drvier.find_elements_by_xpath(".//[@type='checkbox']")


/////复选框单选
# 找到多选框元素
checkbox = driver.find_element_by_id("id");
# 点击复选框
checkbox.click()
#清除复选框
checkbox.clear()
#判断复选框是否被选中
checkbox.is_selected()
#判断复选框是否可用
checkbox.is_enabled();

/////复选框多选
checkboxs = driver.find_elements_by_xpath("//*[@type='checkbox']")
for i in checkboxs:
    i.click()
            
          

6、按钮

            
              # 找到按钮元素 
saveButton = driver.find_element_by_id("id")
# 点击按钮 
4 saveButton.click() 
# 判断按钮是否可用 
6 saveButton.is_enabled ()
            
          

7、弹出对话框(参考链接:https://www.cnblogs.com/mengyu/p/6952774.html)

a、警告消息框(alert)
  警告消息框提供了一个"确定"按钮让用户关闭该消息框,并且该消息框是模式对话框,也就是说用户必须先关闭该消息框然后才能继续进行操作。

            
              #获取alert对话框的按钮,点击按钮,弹出alert对话框
driver.find_element_by_xpath('xpath').click()
#获取alert对话框
alert = driver.switch_to_alert()
#添加等待时间
time.sleep(2)
#获取警告对话框的内容
print (alert.text)  #打印警告对话框内容
#alert对话框属于警告对话框,我们这里只能接受弹窗
alert.accept()   
            
          

b、确认消息框(confirm)

  确认消息框向用户提示一个"是与否"问题,用户可以根据选择"确定"按钮和"取消"按钮。

            
              #获取confirm对话框的按钮,点击按钮,弹出confirm对话框
driver.find_element_by_xpath('xpath').click()
#获取confirm对话框
dialog_box = driver.switch_to_alert()
#添加等待时间
time.sleep(2)
#获取对话框的内容
print (dialog_box.text)  #打印警告对话框内容
#点击【确认】显示"您为何如此自信?"
dialog_box.accept()   #接受弹窗
print (driver.find_element_by_xpath('xpath').text)
time.sleep(2)
#再次获取confirm对话框的按钮,点击按钮,弹出confirm对话框
driver.find_element_by_xpath('xpath').click()
#再次获取confirm对话框
dialog_box = driver.switch_to_alert()
#点击【取消】显示"您为何如此谦虚?"
time.sleep(2)
#点击取消
dialog_box.dismiss() 
#关闭获取取消对话框 
print (driver.find_element_by_xpath('xpath').text)
driver.quit()
            
          

c、提示消息对话(prompt)
  提示消息框提供了一个文本字段,用户可以在此字段输入一个答案来响应您的提示。该消息框有一个"确定"按钮和一个"取消"按钮。选择"确认"会响应对应的提示信息,选择"取消"会关闭对话框。

            
              #获取prompt对话框的按钮,点击按钮,弹出confirm对话框
driver.find_element_by_xpath('xpath').click()
#获取prompt对话框
dialog_box = driver.switch_to_alert()
#添加等待时间
time.sleep(2)
#获取对话框的内容
print (dialog_box.text)  #打印警告对话框内容
dialog_box.send_keys("2")  #弹出框内输入2
dialog_box.accept()  #接受
print (driver.find_element_by_xpath('xpath').text)  #获取关闭弹窗结果  #获取确认弹窗结果
'''这里等待几秒在测试取消'''
time.sleep(2)
#************************点击【取消】,并且获取显示结果**********************
driver.find_element_by_xpath('xpath').click()
#获取prompt对话框
dialog_box = driver.switch_to_alert()
#添加等待时间
time.sleep(2)
dialog_box.dismiss()  #关闭对话框
print (driver.find_element_by_xpath('xpath').text)  #获取关闭弹窗结果
time.sleep(2)
driver.quit()
            
          

selenium 提供switch_to_alert()方法定位到 alert/confirm/prompt对话框。使用 text/accept/dismiss/send_keys 进行操作,这里注意的是send_keys只能对prompt进行操作。

  • switch_to_alert()   #定位弹出对话
  • text()                   #获取对话框文本值
  • accept()                   #相当于点击"确认"
  • dismiss()                  #相当于点击"取消"
  • send_keys()              # 输入值,这个alert和confirm没有输入对话框,所以这里就不能用了,所以这里只能使用在prompt这里。

8、表单-------提交表单

            
              driver.find_element_by_id("id").submmit()
            
          

9、上传文件

            
              #coding=utf-8
from selenium import webdriver
import os,time
driver = webdriver.Firefox()
#脚本要与asd.html 同一目录
file_path = os.path.abspath('需要上传文档的html文件的名称')
print file_path
driver.get(file_path)
#定位上传按钮,添加本地文件
driver.find_element_by_xpath("html/body/div[1]/div/input").send_keys('上传的文件的路径')
time.sleep(2)
driver.quit()
            
          

10、鼠标悬停

            
              # 导入selenium中的actionchains的方法

from selenium.webdriver.common.action_chains import ActionChains

#识别需要悬停的元素

ele = self.driver.find_element_by_class_name('class_name')

# 鼠标移到悬停元素上

ActionChains(self.driver).move_to_element(ele).perform()
            
          

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论