Selenium-WebDriverApi接口详解

发表于:2019-3-14 16:58

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:尘世风    来源:博客园

  浏览器操作
   # 刷新
  driver.refresh()
  # 前进
  driver.forward()
  # 后退
  driver.back()
   获取标签元素
  # 通过ID定位目标元素
  driver.find_element_by_id('i1')
  # 通过className定位目标元素
  driver.find_element_by_class_name('c1')
  # 通过name属性定位目标元素
  driver.find_element_by_name('n1')
  # 通过Xpath定位目标元素
  driver.find_element_by_xpath('//*[@id="i1"]')
  # 通过css Selector定位目标元素
  driver.find_element_by_css_selector('#i1')
  # 通过标签名称定位(注:在一个页面中,标签一定会重复,所以不用这个来进行定位)
  driver.find_element_by_tag_name('input')
  # 通过标签中的文本查找元素
  driver.find_element_by_link_text('登录')
  # 通过标签中文本的模糊匹配查找
  driver.find_elements_by_partial_link_text('录')
  获取标签元素常用的一共有8种定位方式,而Selenium实际提供了18种定位方式,还有8种是上面的复数形式,这里就不一一介绍了,实际运用中并不常用,还有2种实际上是这上面所说16种的底层封装。参数化的一种调用方式而已。
  Cookie操作
   # 根据cookieKey,获取cookie信息
  cookie = driver.get_cookie('cookieKey')
  # 获取所有cookie信息
  cookies = driver.get_cookies()
  # 添加cookie,严格按照格式添加,cookie的key为name,value为value
  driver.add_cookie({'name':'tmp','value':'123123123'})
  # 删除所有cookie信息
  driver.delete_all_cookies()
  # 根据cookieKey删除对应cookie
  driver.delete_cookie('UiCode')
  窗口操作
   # 获取当前浏览器的大小
  driver.get_window_size()
  # 通过像素设置浏览器的大小
  driver.set_window_size('width','height')
  # 获取当前窗口针对于Windows的位置的坐标x,y
  driver.get_window_position()
  # 设置当前窗口针对Windows的位置,x,y
  driver.set_window_position(20,20)
  # 最大化当前窗口,不需要传参
  driver.maximize_window()
  # 返回当前操作的浏览器句柄
  driver.current_window_handle
  # 返回所有打开server的浏览器句柄
  driver.window_handles
  截取当前页面
   请# 获取当前页面的二进制图片数据,需要自己去写入文件
  driver.get_screenshot_as_png()
  # as_png的上层封装,只需要传入图片名称自动写成图片
  driver.get_screenshot_as_file('fileName.png')
  执行JavaScript语句
   # 执行JavaScript语句
  driver.execute_script('JavaScript Commond')
  # 例:
  # 通过js来操作滚动条
  # 参数1:x  参数2: y
  window.scrollTo(100,400);
  关闭与退出
   # 当开启多个时,关闭当前页面
  driver.close()
  # 退出并关闭所有页面驱动
  driver.quit()
  其他
 # 返回页面源码
  driver.page_source
  # 返回tag标题
  driver.title
  # 返回当前Url
  driver.current_url
  # 获取浏览器名称 如:chrome
  driver.name
   ElementApi接口 
   # 根据标签属性名称,获取属性value
  element.get_attribute('style')
  # 向输入框输入字符串 如果input的type为file类型 可以输入文件绝对路径上传文件
  element.send_keys()
  # 清除文本内容
  element.clear()
  # 鼠标左键点击操作
  element.click()
  # 通过属性名称获取属性
  element.get_property('id')
  # 返回元素是否可见 True or False
  element.is_displayed()
  # 返回元素是否被选中 True or False
  element.is_selected()
  # 返回标签元素的名字
  element.tag_name
  # 获取当前标签的宽和高
  element.size
  # 获取元素的文本内容
  element.text
  # 模仿回车按钮 提交数据
  element.submit()
  # 获取当前元素的坐标
  element.location
  # 截取图片
  element.screenshot()
   常见异常
  NoSuchElementException:没有找到元素
  NoSuchFrameException:没有找到iframe
  NoSuchWindowException:没找到窗口句柄handle
  NoSuchAttributeException:属性错误
  NoAlertPresentException:没找到alert弹出框
  ElmentNotVisibleException:元素不可见
  ElementNotSelectableException:元素没有被选中
  TimeoutException:查找元素超时

       上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号