12、Selenium其他常用的操作(文件上传、页面截图、对话框)
文件上传
在Selenium webdriver中文件上传操作并不复杂,只需要定位到上传文件的按钮,通过按钮调用send_keys()方法就能实现文件上传
注意事项
- 调用send_keys()方法需要一个参数,就是需要上传文件的路径,注意路径需要转义符
- 路径中不要中文
- 格式:driver.find_element_by_link_text('上传').send_keys('文件路径')
代码示例
# 图片上传操作,定位上传图片按钮。调用send_keys() driver.find_element_by_xpath('//*[@id="dv_if_container"]/form/input').send_keys(r'E:\photo\111.png') sleep(3) # 点击保存按钮 driver.find_element_by_id('btn_save_img').click()
页面截图
在我们编写脚本过程中,有时候需要页面截图来直观的展现错误,如何进行截图操作
截图方法:get_screenshot_as_file(self,filename)
代码示例
driver.get_screenshot_as_file(r"路径\图片名称")
alert对话框操作
扩展知识:
- 对话框分为三类:警告对话框、确认对话框、提示对话框
- 警告对话框:提供一个确定按钮让用户关闭对话框,属于模式对话框,也就是说必须关闭对话框才能进行后续操作
- 确认对话框:向用户提示一个是与否的问题,例如是否删除数据,一般给出确定和取消按钮
- 提示对话框:提供一段文字提示,用户可以输入一个答案来响应提示,也有确定按钮和取消按钮,确定按钮点击会响应对应的提示信息,取消按钮会关闭对话框
- Selenium提供的switch_to_alert()方法能够定位到所有类型的对话框,进而操作对话框
- 获取对话框文本:text
- 点击确定按钮:accept()
- 点击取消按钮:dismiss()
- 输入内容:send_keys()
- 根据对话框的特性,我们可以得出结论,
- 只有提示对话框可以使用send_keys(),方法,因为只有它能输入内容;
- 警告框没有取消按钮不能使用dismiss()方法
代码示例
from time import sleep from selenium import webdriver # 获取浏览器驱动 driver = webdriver.Chrome() # 打开百度网页 driver.get('https://xxx.xxx.com') # 定位对话框 alert = driver.switch_to_alert() # 控制台输出对话框文本 print(alert.text) # 点击对话框确定按钮 alert.accept() # 点击对话框取消按钮 alert.dismiss() # 对话框回复内容 alert.send_keys('回复文本') # 浏览器窗口最大化 driver.maximize_window()
浙公网安备 33010602011771号