WebDriver是操作浏览器驱动,启动服务,然后创建Chrome驱动程序实例对象操作浏览器,详细工作原理可以参考selenium之WebDriver的工作原理
本篇主要介绍WebDriver的常用方法及常用参数
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://blog.youkuaiyun.com/zzrs_xssh") # 打开浏览器请求的url
elem = driver.find_element_by_xpath('//*[@id="mainBox"]/main/div[2]/div[2]/h4/a').click()
print(driver.name) # chrome
# 返回当前浏览器的名称
print(driver.title) # zzrs_xssh的博客__xiao_gu_优快云博客-软件测试,笔记领域博主
# 返回当前窗口的title
# driver.execute("CommandExecutor", params=None)
# 执行CommandExecutor命令,driver.get的执行原理就是调用execute方法
# driver.get方法可以写成driver.execute("get", {'url': 'https://blog.youkuaiyun.com/zzrs_xssh'})
print(driver.execute("getTitle")["value"]) # zzrs_xssh的博客__xiao_gu_优快云博客-软件测试,笔记领域博主
# driver.title也是调用execute方法
print(driver.current_url) # https://blog.youkuaiyun.com/zzrs_xssh
# 返回经过处理的当前页面的url
# print(driver.page_source)
# # 返回当前页面的源码
# driver.close()
# # 关闭当前窗口
#
# driver.quit()
# # 关闭当前浏览器
print(driver.current_window_handle) # CDwindow-B59BEFF9522213021F81B8C1C01C8180
# 返回当前窗口的句柄
print(driver.window_handles)
# 返回打开的所有窗口的句柄
driver.maximize_window()
# 设置当前窗口最大化
driver.minimize_window()
# 设置当前窗口最小化
driver.set_window_size(1920, 1080)
# 手动设置浏览器宽和高
driver.get_window_size()
# 获取当前窗口的宽和高,返回一个字典{'width': 946, 'height': 1020}
driver.fullscreen_window()
# 让整个窗口最大化
driver.switch_to.window("window name")
# 切换到指定窗口,window name也可以是窗口的句柄
driver.switch_to.frame("frame_reference")
# 切换到指定的frame, frame_reference 可以是frame的index, name, element
# driver.switch_to.frame('frame_name')
# driver.switch_to.frame(1)
# driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])
driver.back()
# 在浏览器的历史记录中向后一步
driver.forward()
# 在浏览器的历史记录中向前一步
driver.refresh()
# 刷新当前页面
driver.set_page_load_timeout(1)
# 设置页面加载的超时时间
# 应用在页面加载时间较长且不需要页面完全加载即可操作页面时使用,与try连用
# driver.set_page_load_timeout(1)
# try:
# driver.get("https://blog.youkuaiyun.com/zzrs_xssh") # 设置的超时时间肯定会小于页面的加载时间,所以这句代码会抛异常
# except TimeoutError:
# driver.execute_script("window.stop()") # 抛异常以后执行js代码,让页面停止加载,然后继续执行之后的操作
driver.get_screenshot_as_file("filename")
# 给当前的窗口截屏,参数是一个截屏以后的保存路径
driver.save_screenshot("filename")
# 功能同上,这个方法调用的就是get_screenshot_as_file方法
driver.get_log('driver')
# 获取当前浏览器的日志
driver.quit()
webdriver执行js代码以及操作cookie的方法可以参考selenium常用方法2
元素定位方法请参考selenium常用方法1