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

适合项目:

  1. 测试任务明确,不会频繁变动
  2. 每日构建后的测试验证
  3. 比较频繁的回归测试
  4. 软件系统界面稳定,变动少
  5. 需要在多平台上运行相同测试案例、组合遍历型的测试,大量的重复任务;
  6. 软件维护周期长;

WebDriver API

  1. 定位元素 (定位一组元素为find_elements_)

    1. 根据ID find_element_by_id()
    2. 根据Name find_element_by_name()
    3. 根据Class find_element_by_class_name()
    4. 根据tag find_element_by_tag_name() tag包括<div> <input>
    5. 根据连接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("百")
    6. 根据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
    7. 根据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. 常用方法
      1. perform 执行所有ActionChains中储存的行为,类似委托
      2. context_click() 右击
      3. double_click() 双击
      4. drag_and_drop(source,target) 拖动:在源元素上按住鼠标左键,然后移动到目标元素上释放
      5. move_to_element() 鼠标悬浮
    2. 操作流程
      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 代码

    1. driver.execute_script()
  13. 窗口截图 一般sleep再截图

    1. driver.getscreenshot_as_file(path) 文件路径和文件名

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值