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

本文总结了Python+Selenium自动化测试框架中的常见页面操作,包括输入框、下拉选择框、取消选择、单选框、多选框、按钮、弹出对话框(警告、确认和提示消息框)的处理,以及表单提交和文件上传等。通过POM模型,详细介绍了每种元素的定位和交互方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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、定位非<select>标签的下拉菜单------先定位到下拉菜单,再对其中的选项进行定位

#先定位到下拉菜单
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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值