背景
WebDriver提供的方法,一些是我们常用的,可以模拟使用浏览器时的大部分操作。
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.keys import Keys
chrome_driver = r'D:\Python3.7\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe'
driver = webdriver.Chrome(executable_path = chrome_driver)
#以下总结控制浏览器的常用方法,这些方法都是基于浏览器对象的。
#设置浏览器窗口大小-宽600,高800
driver.set_window_size(600, 800)
#设置浏览器全屏显示
driver.maximize_window()
#打开指定网址
#url = ""http://www.airchina.com.cn/?cid=BR-pinzhuan:20181031:SEM:BaiduB:CHN:00001""
driver.get(url)
#模拟浏览器后退
driver.back()
#模拟浏览器前进
driver.forward()
#返回当前页面标题
driver.title
#返回当前页面URL
driver.current_url
#模拟浏览器刷新
driver.refresh()
#以下为浏览器对象提供的操作Cookie的方法
#Cookie是以字典的形式存在,这些方法处理Cookie的方式就是字典方法
#返回一个包含所有Cookie字典列表
driver.get_cookies()
#get_cookie(name) 和 delete_cookie(name)的参数都是cookie字典中name键的值
#返回指定name值的cookie字典
driver.get_cookie(name_value)
#删除指定name值cookie字典
driver.delete_cookie(name_value)
#添加Cookie,参数是一个含有cookie数据的字典
driver.add_cookie(cookie_dict)
#删除所有cookie
driver.delete_all_cookies()
#以下为获取窗口句柄的方法和属性,这些方法和属性都是基于浏览器对象
#返回当前窗口句柄,返回值为字符串格式
driver.current_window_handle
#返回所有窗口的句柄,返回值为列表格式
driver.window_handles
#切换到指定句柄的窗口
driver.switch_to.window(a_window_handle)
#表单切换的方法
driver.switch_to.frame(a_frame_control)
#切换表单后,可以使用switch_to.default_content()回到最外层的页面
driver.switch_to.default_content()
#执行JavaScript脚本的方法
driver.execute_script(a_JS)
#窗口截图的方法,参数为截图指定保存路径(包含文件名),建议以png作为图片格式
driver.save_screenshot(save_to_path)
#退出浏览器,退出相关的驱动程序和关闭所有窗口
driver.quit()
#关闭当前窗口
driver.close()
#以下总结WebDriver中常用的方法和属性,这些方法和属性都是基于控件对象的
#清除文本,一般输入框控件有默认文本,输入自定义文本前需要先清除默认文本,使用该方法
driver.find_element_by_id(id).clear()
#模拟按键输入
driver.find_element_by_id(id).send_keys(text)
#模拟单击操作
driver.find_element_by_id(id).click()
#模拟提交表单,该方法使用场景,比如某个搜索框没有设计搜索按钮,正常操作时通过按Enter键进行搜索。通过webdriver,可以使用submit()提交表单的方法来进行搜索。当然也可以模拟按键输入Enter.
driver.find_element_by_id(id).submit()
#返回元素的尺寸
driver.find_element_by_id(id).size
#返回元素的文本内容
driver.find_element_by_id(id).text
#返回指定元素的指定属性的值
driver.find_element_by_id(id).get_attribute(attribute_name)
#返回元素的结果是否可见,返回结果为True或False
driver.find_element_by_id(id).is_displayed()