51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1205|回复: 1
打印 上一主题 下一主题

[转贴] Selenium自动化开发的WebDriver的常用API

[复制链接]
  • TA的每日心情
    擦汗
    昨天 09:05
  • 签到天数: 1048 天

    连续签到: 1 天

    [LV.10]测试总司令

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

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-19 00:39 , Processed in 0.063087 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表