Selenium自动化开发的WebDriver的常用API

上一篇 / 下一篇  2021-07-21 15:14:14 / 个人分类:测试

适合项目:
  1. 测试任务明确,不会频繁变动;
  2. 每日构建后的测试验证;
  3. 比较频繁的回归测试;
  4. 软件系统界面稳定,变动少;
  5. 需要在多平台上运行相同测试案例、组合遍历型的测试,大量的重复任务;
  6. 软件维护周期长;
WebDriver API
1、定位元素 (定位一组元素为find_elements_)
  • 根据ID find_element_by_id()
  • 根据Name find_element_by_name()
  • 根据Class find_element_by_class_name()
  • 根据tag find_element_by_tag_name() tag包括<div> <input>
  • 根据连接link
  1. 例如 <a class="demo" name="test" href="http://www.baidu.com">百度</a>
  2. 全名 find_element_by_link_text("百度")
  3. 模糊 find_element_by_partial_link_text("百")
  • 根据XPath定位
  1. 绝对路径定位 find_element_by_xpath("/html/body/div/input[1]") html元素的路径
  2. 元素属性定位 find_element_by_xpath("//input[@id='kw']")
  3. 使用逻辑运算 find_element_by_xpath("//input[@id='kw' and @class='demo']")
  4. 使用谷歌浏览器调试,在元素上右键-Copy-Copy XPath
  • 根据css find_element_by_css_selector()
  1. 有点像JQ,find_element_by_css_selector(".demo") #kw span>input
  2. 使用谷歌浏览器调试,在元素上右键-Copy-Copy selector
2、支持的浏览器
  1. browser=webdriver.Chrome()
  2. browser=webdriver.Firefox()
  3. browser=webdriver.Edge() # Microsoft Edge
  4. browser=webdriver.Safari()
  5. browser=webdriver.Android()
  6. browser=webdriver.BlackBerry()
  7. browser=webdriver.Ie()
  8. browser=webdriver.Opera()
  9. browser=webdriver.PhantomJS()
3、控制浏览器 driver=webdriver.Chrome(); webdriver.Chrome()
  1. 访问 driver.get(url);
  2. 后腿 driver.back();
  3. 前进 driver.forward();
  4. 关闭 driver,quit();
  5. 刷新 driver.refresh()。
4、简单元素操作
  1. clear() 清除文本
  2. send_keys(*value) 模拟按键输入
  3. click() 单元元素
  4. submit() 表单提交
  5. size() 返回元素尺寸
  6. text() 获取文本
  7. get_attribute(name) 获取属性值 类似jq的attr
  8. is_displayed() 是否可见
5、鼠标事件 引入 from selenium.webdriver.common.action_chains import ActionChains
  • 常用方法
  1. perform. 执行所有ActionChains中储存的行为,类似委托
  2. context_click() 右击
  3. double_click() 双击
  4. drag_and_drop(source,target) 拖动:在源元素上按住鼠标左键,然后移动到目标元素上释放
  5. move_to_element() 鼠标悬浮
  • 操作流程
  1. button=driver. find_element_by_id('kw');
  2. ActionChains(driver).context_click(button).perform();
6、键盘事件 from selenium.webdriver.common.keys import Keys
  1. send_keys(value) 输入框输入内容
  2. send_keys(Keys.BACK_SPACE) 删除键
  3. send_keys(Keys.SPACE) 空格键
  4. send_keys(Keys.TAB) Tab
  5. send_keys(Keys.ESCAPE) 回退
  6. send_keys(Keys.ENTER) 回车
  7. send_keys(Keys.CONTROL,'a') 全选、复制粘贴类似
  8. send_keys(Keys.F1) F1
7、获取验证信息
  1. driver.title 页面title
  2. driver.current_url 当前页面URL
8、设置元素等待
  1. sleep() from time import sleep 单位/秒
9、多表单切换
  1. 定位到iframe元素
  2. driver.switch_to.frame(value) iframe的id或name
  3. switch_to.parent_frame() 跳出当前一级表单
  4. switch_to.default_content() 调回最外层的页面
10、警告框处理 driver.switch_to_alert()
  1. text() 返回文本信息
  2. accept() 接受
  3. dismiss() 解散
11、操作Cookie
  1. get_cookies() 获取所有的cookie
  2. get_cookie(name) 返回key为name的cookie信息
  3. add_cookie(dict) 添加cookie, dcit是字典对象,有key、value
  4. delete_cookie(name,option) 删除cookie,name:cookie名称,option是cookie选项,只是路径、域
  5. delete_all_cookies()
12、调用js 代码
  • driver.execute_script()
13、窗口截图 一般sleep再截图
  • driver.getscreenshot_as_file(path) 文件路径和文件名

TAG:

 

评分:0

我来说两句

Open Toolbar