selenium 常用方法

驱动的常用方法

driver方法作用
.name检查驱动是基于什么浏览器(假设为.Firefox(),返回值则为firefox)
.get(网址)已get方法打开指定网址
.title返回当前页面标题
.current_url当前url
.page_source获取当前页面的源(重要方法)
.back()在浏览器的历史记录中后腿一步。
.forward()在浏览器历史记录中向前迈进了一步。
.refresh()刷新页面
.implicitly_wait(时间)隐式等待(下方有此方法详细使用说明)
.set_script_timeout(时间)异步加载页面时等待的时间
.set_page_load_timeout(时间)设置等待页面加载的时间,超出后报错(在get前使用)
.desired_capabilities返回当前驱动的信息

对浏览器的操作

使用方法作用
.current_window_handle返回当前窗口的句柄(系统会给每个窗口分配一个句柄,可以根据句柄移动窗口、改变窗口大小、把窗口最小化等等。)
.window_handles返回所以窗口的句柄
.maximize_window()最大化窗口
.minimize_window()最小化窗口
.fullscreen_window()将窗口全屏
.set_window_size(宽,高)指定窗口的大小
.get_window_size()获取窗口的大小
,set_window_position(x,y)设置窗口的位置
.get_window_position()获取窗口的位置
.set_window_rect(x,y,宽,高)设置状况的位置以及大小
.get_window_rect()获取当前窗口的位置以及大小
.close()关闭窗口
.quit()退出驱动程序并关闭窗口
.switch_to用于切换焦点(多窗口切换与切换到页面中内置页面frame元素中使用)

查找元素

常用查找方法作用
.find_element_by_id(id名)按id查找元素。(找到第一个符号要求的元素后立即返回)
.find_elements_by_id(id名)按id查找多个元素。(找到多个符合要求的元素后合并成列表返回)
.find_element_by_class_name(class名)按class名查找元素。(同样拥有查找多个元素的elements方法)
.find_element_by_xpath(xpath规则)按xpath规则查找元素。(同样拥有查找多个元素的elements方法)
.find_element_by_link_text(文本)根据标签中的文本查找元素,必须要全文匹配,比如<p>全文匹配</p>时文本必须为’全文匹配’(同样拥有查找多个元素的elements方法)
.find_element_by_partial_link_text(文本)根据标签中的文本查找元素,部分匹配即可,比如<p>全文匹配</p>时文本可以为’匹配’(同样拥有查找多个元素的elements方法)
.find_element_by_name(name名)按名称查找元素。(同样拥有查找多个元素的elements方法)
.find_element_by_tag_name(HTML标签)按HTML标签查找元素。(同样拥有查找多个元素的elements方法)
.find_element_by_css_selector(css选择器)根据css选择器查找元素。(同样拥有查找多个元素的elements方法)
.find_element(策略器 ,’元素’)策略器包含By.ID,By.TAG_NAME,By.CLASS_NAME,By.NAME(同样拥有查找多个元素的elements方法) 策略器需要导入from selenium.webdriver.common.by import By

行为链(模拟鼠标与键盘)

模拟鼠标的单击,双击,右击,悬浮等操作。需要引入from selenium.webdriver.common.action_chains import ActionChains 。创建行为链需要先实例化一个鼠标ActionChains(WebDriver实例)比如mouse = ActionChains(self.driver)

行为链模拟鼠标方法作用
.perform()执行操作(行为链是一系列操作,最后需要使用此方法让其他方法开始执行,类似数据库事务的提交操作)
.reset_actions()清除操作(相当于数据库中事务的回滚)
.click(点击对象)点击左键
.click_and_hold(点击对象)按住左键(与点击不同,这是按住不松)
.context_click(点击对象)点击右键
.double_click(点击对象)双击鼠标左键
.drag_and_drop(下移对象, 上移对象)将指定元素上下移动
.drag_and_drop_by_offset(点击对象, x, y)点击指定对象后拖动至指定xy区域
.move_by_offset(x, y)移动鼠标到坐标xy
.move_to_element(指定对象)将鼠标移动到指定对象上并开始悬停
.move_to_element_with_offset(指定对象, x, y)将鼠标移动到指定对象后并偏移xy。
.release(指定对象)在指定对象上放开鼠标,不指定对象则为当前位置放开鼠标
行为链模拟键盘方法作用
.key_down(按键, 发送对象)按下键盘按键,但不释放键盘(需要同时按住多键时使用),每次只能传入一个按键,如果没有发送对象,则想当前焦点发送
.send_keys(按键)选择按键
.key_up(按键, 发送对象)放开按键,如果没有发送对象,则想当前焦点发送
send_keys_to_element(发送对象, 按键)点击键盘
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
# 假设需要按ctrl+c
driver = webdriver.Firefox()
ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()

保存网页快照

使用方法作用
.get_screenshot_as_file(文件路径.png)要将屏幕快照保存到指定路径.save_screenshot(文件路径.png)方法作用相同
.get_screenshot_as_png()获取屏幕快照的二进制并作为返回值返回
.get_screenshot_as_base64()获取屏幕快照的base64编码字符串并作为返回值返回,在HTML中的嵌入图像中非常有用。

对cookie的操作

使用方法作用
.get_cookies()用字典的方式返回获取的cookies
.get_cookie(cookie名)按cookie寻找cookie
.delete_cookie(名称)删除指定名称的cookie
.delete_all_cookies()删除全部cookie
.add_cookie(cookie)将cookie添加到当前网页
上一篇
下一篇