作者:mR_woManh | 来源:互联网 | 2023-07-28 15:21
selenium库的介绍和使用4.Selenium库下webdriver模块常用方法的使用4.8.下拉框选择操作4.9.文件上传4.10.cookie操作4.11.窗口截图4.12
selenium库的介绍和使用
- 4. Selenium库下webdriver模块常用方法的使用
- 4.8. 下拉框选择操作
- 4.9. 文件上传
- 4.10. COOKIE操作
- 4.11. 窗口截图
- 4.12. 关闭浏览器
4. Selenium库下webdriver模块常用方法的使用
4.8. 下拉框选择操作
导入选择下拉框Select类,使用该类处理下拉框操作
from selenium.webdriver.support.select import Select
Select类的方法
select_by_value(“选择值”) select标签的value属性的值
select_by_index(“索引值”) 下拉框的索引
select_by_visible_testx(“文本值”) 下拉框的文本值
实例
from selenium import webdriver
from selenium.webdriver.support.select import Select
from time import sleep
driver = webdriver.Chrome("F:\Chrome\ChromeDriver\chromedriver")
driver.implicitly_wait(10)
driver.get('http://www.baidu.com')
#1.鼠标悬停至“设置”链接
driver.find_element_by_link_text('设置').click()
sleep(1)
#2.打开搜索设置
driver.find_element_by_link_text("搜索设置").click()
sleep(2)
#3.搜索结果显示条数
sel = driver.find_element_by_xpath("//select[@id='nr']")
Select(sel).select_by_value('50') # 显示50条
sleep(3)
driver.quit()
4.9. 文件上传
对于通过input标签实现的上传功能,可以将其看作是一个输入框,即通过send_keys()指定本地文件路径的方式实现文件上传
通过send_keys()方法,实现文件上传
实例
from selenium import webdriver
import os
driver = webdriver.Firefox()
file_path = 'file:///' + os.path.abspath('upfile.html')
driver.get(file_path)
#定位上传按钮,添加本地文件
driver.find_element_by_name("file").send_keys('D:\\upload_file.txt')
driver.quit()
4.10. COOKIE操作
有时候需要验证浏览器中COOKIE是否正确,WebDriver提供了操作COOKIE的相关方法,可以读取、添加和删除COOKIE信息
WebDriver操作COOKIE的方法:
get_COOKIEs() 获得所有COOKIE信息
get_COOKIE(name) 返回字典的key为“name”的COOKIE信息
add_COOKIE(COOKIE_dict) 添加COOKIE。必须有name 和value 值
delete_COOKIE(name,optionsString) 删除COOKIE信息。“name”是要删除的COOKIE的名称,“optionsString”是该COOKIE的选项
delete_all_COOKIEs() 删除所有COOKIE信息
实例
from selenium import webdriver
import time
browser = webdriver.Chrome("F:\Chrome\ChromeDriver\chromedriver")
browser.get("http://www.youdao.com")
#1.打印COOKIE信息
print('=====================================')
print("打印COOKIE信息为:")
print(browser.get_COOKIEs)
#2.添加COOKIE信息
dict={'name':"name",'value':'Kaina'}
browser.add_COOKIE(dict)
print('=====================================')
print('添加COOKIE信息为:')
#3.遍历打印COOKIE信息
for COOKIE in browser.get_COOKIEs():
print('%s----%s\n' %(COOKIE['name'],COOKIE['value']))
#4.删除一个COOKIE
browser.delete_COOKIE('name')
print('=====================================')
print('删除一个COOKIE')
for COOKIE in browser.get_COOKIEs():
print('%s----%s\n' %(COOKIE['name'],COOKIE['value']))
print('=====================================')
print('删除所有COOKIE后:')
#5.删除所有COOKIE,无需传递参数
browser.delete_all_COOKIEs()
for COOKIE in browser.get_COOKIEs():
print('%s----%s\n' %(COOKIE['name'],COOKIE['value']))
time.sleep(3)
browser.close()
4.11. 窗口截图
自动化用例是由程序去执行的,有时候打印的错误信息并不十分明确。如果在脚本执行出错的时候能对当前窗口截图保存,那么通过图片就可以非常直观地看出出错的原因。WebDriver提供了截图函数get_screenshot_as_file()来截取当前窗口
截屏方法:
get_screenshot_as_file(self, filename) 截取当前窗口,并把图片保存到本地
实例
from selenium import webdriver
from time import sleep
driver =webdriver.Firefox(executable_path ="F:\GeckoDriver\geckodriver")
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys('selenium')
driver.find_element_by_id('su').click()
sleep(2)
#1.截取当前窗口,并指定截图图片的保存位置
driver.get_screenshot_as_file("D:\\baidu_img.jpg")
driver.quit()
4.12. 关闭浏览器
close() 关闭单个窗口
quit() 关闭所有窗口