关于selenium:Selenium使用丨WebDriverAPI常用操作

27次阅读

共计 2261 个字符,预计需要花费 6 分钟才能阅读完成。

1 应用前提

  • 1. 导入包:from selenium import webdriver
  • 2. 初始化一个浏览器对象:driver = webdriver.Chrome()

2 浏览器相干办法和阐明

办法 阐明
get(url) 拜访指标 url
back() 后退前一个页面
forward() 后退后一个页面
refresh() 刷新页面
maximize_window() 最大化窗口
minimize_window() 最小化窗口
fullscree_window() 全屏窗口
get_window_size() 获取窗口大小
set_window_size(x,y) 设置窗口大小
close() 敞开以后浏览器窗口
quit() 退出浏览器过程
switch_to_active_element 返回惟一焦点所在元素
switch_to_alert() 切换到 alert
switch_to_default_content() 切换到主窗口
switch_to_frame(索引 or 名称 or 元素) 切换到 frame 或 iframe
switch_to_window(名称 or 句柄) 切换到指定窗口
current_url 获取页面 url 地址
title 获取页面题目
name 获取以后实例的浏览器名称
page_source 获取以后页面的源码
current_windows_handle 获取以后页面的句柄
Window_handles 获取所有回话的窗口句柄

3 获取页面元素的相干信息

办法 阐明
.tag_name 获取标签名
.size 获取元素大小
.text 获取元素的文本
get_attribute(’id/name/value 等‘) 获取元素的属性信息
.is_displayed() 判断元素是否可见
.is_enabled() 判断元素是否可用
.is_selected() 判断元素是否是选中状态

4 鼠标操作

  • 1. 导入类,from selenium.webdriver.common.action_chains import ActionChains
  • 2. 定位要操作的元素
  • 3. 固定写法,ActionChains(driver).xxx 操作 (pars).perform()
办法 阐明
click() 鼠标单击
ActionChains(driver).click(ele).perform() 鼠标单击
ActionChains(driver).double_click(ele).perform() 鼠标双击
ActionChains(driver).context_click(ele).perform() 鼠标右击
ActionChains(driver).move_to_element(ele).perform() 鼠标指针悬浮操作
ActionChains(driver).drag_and_drop(source,target).perform() 鼠标拖动操作
ActionChains(driver).key_down(ele).perform() 按下鼠标左键

5 键盘操作

办法 阐明
send_keys('value') 输出文字
clear() 清空内容
  • 如果应用组合键,须要导入包 from selenium.webdriver.common.keys import Keys
  • 组合办法如下:
办法 阐明
send_keys('keys.CONTROL','a') Ctrl+A
send_keys('keys.CONTROL','c') Ctrl+C
send_keys('keys.CONTROL','v') Ctrl+V
send_keys(Keys.ENTER) 回车
ActionChains(driver).key_down(Keys.CONTROL).perform() ele.click() 按下 ctrl. 单击元素

6 期待机制

6.1 隐性期待

  • webdriver 会在预约好的工夫内继续地检测元素是否找到,一旦找到,就执行后续的动作,超过了预约工夫未找到,就报错(全局期待),应用 .implicitly_wait(time)
  • 会减缓测试速度 - 删除
  • 须要整个页面加载实现才执行 - 图片,js
  • 隐形会烦扰显性,最好不要和显性期待一起应用

6.2 显性期待

  • webdriver 期待页面加载实现,找到某个条件产生后再继续执行后续代码,如果超过设置工夫检测不到则抛出异样(某个特定元素设置的期待)
  • 导入类:from selenium.webdriver.support.ui import WebDriverWait
.until().until_not()
  • 导入模块:from selenium.webdriver.support import expected_conditions
title_is(title)
title_contains(title)
element_to_be_selected(element)
  • 语法:WebDriverWait(driver,timeout).until(可执行的办法,超时后返回的信息)
  • 实例:WebDriverWait(self.driver,10).until(expected_conditions.title_is(‘ 管理系统 ’))
  • 失常应用场景:初始化:wait=WebDriverWait(self.driver,10) 应用:self.wait.until(expected_conditions.title_is(‘ 管理系统 ’))

6.3 强制期待

  • 固定期待多长时间
  • time.sleep(time)

7 截图

.get_screenshot_as_file('D:\selenium.png')

正文完
 0