1.浏览器操作

# 刷新
driver.refresh()
 
# 前进
driver.forward()
 
# 后退
driver.back()

2.获取标签元素

# 通过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('录')
3.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')
4.窗口操作
# 获取当前浏览器的大小

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
5.截取当前页面
# 获取当前页面的二进制图片数据,需要自己去写入文件

driver.get_screenshot_as_png()
 # as_png的上层封装,只需要传入图片名称自动写成图片
driver.get_screenshot_as_file('fileName.png')
6.执行JavaScript语句
# 执行JavaScript语句

driver.execute_script('JavaScript Commond')
 
# 例:
# 通过js来操作滚动条
# 参数1:x  参数2: y
window.scrollTo(100,400);
6.关闭与退出
# 当开启多个时,关闭当前页面

driver.close()
 
# 退出并关闭所有页面驱动
driver.quit()
7.其他
# 返回页面源码

driver.page_source
 
# 返回tag标题
driver.title
 
# 返回当前Url
driver.current_url
 
# 获取浏览器名称 如:chrome
driver.name
8.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()
 
8.常见异常
oSuchElementException:没有找到元素

 
NoSuchFrameException:没有找到iframe
 
NoSuchWindowException:没找到窗口句柄handle
 
NoSuchAttributeException:属性错误
 
NoAlertPresentException:没找到alert弹出框
 
ElmentNotVisibleException:元素不可见
 
ElementNotSelectableException:元素没有被选中
 
TimeoutException:查找元素超时

Selenium的定位元素的更多相关文章

  1. selenium配置文件定位元素

    之前的写的selenium的定位元素进行测试的代码,现在一运行就报找不到元素了,之前运行的好好的. 我查看网站源码后,发现网站元素确实是变了,原来的定位的xpath代码压根全部找不到了,于是 想着,以 ...

  2. selenium+python定位元素方法

    定位元素方法 官网地址:http://selenium-python.readthedocs.org/locating-elements.html        这里有各种策略用于定位网页中的元素(l ...

  3. selenium 难定位元素,时间插件,下拉框定位,string

    1.元素定位 ID定位元素: findElement(By.id(“”)); 通过元素的名称定位元素: findElement(By.name(“”)); 通过元素的html中的位置定位元素: fin ...

  4. selenium css定位元素

    CSS 选择器: 常见符号: #表示 id选择器 .表示 class选择器 >表示子元素,层级 一个空格也表示子元素,但是是所有的后代子元素,相当于 xpath 中的相对路径 一.css:属性定 ...

  5. Selenium Webdriver定位元素的几种方式

    原文:http://www.cnblogs.com/tobecrazy/p/4570494.html 工作中使用到记录一下. 主要有: 上传 alter dialog prompt dialog co ...

  6. selenium无法定位元素问题

    在用自动化测试工具selenium完成下载任务时,经常会遇到定位不到元素的情况,总结如下: 1.frame/iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame ...

  7. selenium java-3 定位元素的八种方法

    web driver提供了八种元素定位的方法: id name class name tag name link text partial link text xpath css selector 如 ...

  8. selenium+python定位元素的方法及使用

    selenium的八种定位方法 By.ID 通过id定位 By.CLASS_NAME 通过className定位 By.CSS_SELECTOR 通过CSS定位 By.LINK_TEXT 通过link ...

  9. selenium 难定位元素,时间插件,下拉框定位,string包含,定位列表中的一个,技巧

    关于frame: 如果网页存在iframe的话,传统的定位有时候找不到元素,需要切换frame: # 切换到leftFrame定位“测井设计” driver.switch_to_frame(" ...

随机推荐

  1. 洛谷 P1378 油滴扩展

    P1378 油滴扩展 题目描述 在一个长方形框子里,最多有N(0≤N≤6)个相异的点,在其中任何一个点上放一个很小的油滴,那么这个油滴会一直扩展,直到接触到其他油滴或者框子的边界.必须等一个油滴扩展完 ...

  2. 理解linux安装软件

    http://www.codecoffee.com/tipsforlinux/articles/27.html -------------------------------------------- ...

  3. Candy [leetcode] O(n)时间复杂度,O(1)空间复杂度的方法

    对于ratings[i+1],和ratings[i]的关系有下面几种: 1. 相等.相等时ratings[i+1]相应的糖果数为1 2.ratings[i + 1] > ratings[i].在 ...

  4. 蓝牙调试工具hcitool的使用实例【转】

    本文转载自:http://blog.csdn.net/kangear/article/details/37961769 这个工具据说是基于BlueZ的,但是Android4.2以后不再采用BlueZ取 ...

  5. 源码中修改Android的开机画面和动画【转】

    本文转载自:http://blog.csdn.net/dddxxxx/article/details/54343976 参照文章:http://blog.csdn.net/a345017062/art ...

  6. Android和H5交互-基础篇

    hybrid App开发也不是什么新鲜事了,其中native和h5之间的交互则是必不可少的.Android中是如何和H5交互的? 1.webView加载页面 我们都知道在Android中是通过webV ...

  7. C++ this指针 全部

    在每一个成员函数中都包含一个特殊的指针,这个指针的名字是固定的.叫做this.它是指向本类对象的指针,它的值是当前被调用的成员函数所在的对象的起      始地址.例如:当调用成员函数a.volume ...

  8. ASP.NET Core 多环境

    ASP.NET Core 支持在多个环境中管理应用程序,如开发(Development),预演(Staging)和生产(Production).环境变量用来指示应用程序正在运行的环境,允许应用程序适当 ...

  9. python 11:range(起始索引,终止索引,步数)(默认情况下步数为1,生成从起始索引,每次增加(终止索引-起始索引)/步数,到终止索引前的数字串)

    squares = [] for value in range(1,11): #第三参数默认为1,生成从1开始,每次增加1步数,到11前的10为止的数字串 square = value ** 2 sq ...

  10. 2-SAT的小总结(POJ 3683 POJ 3207)

    记住几个最重要的公式: xANDy=0<=>(x=>y′)AND(y=>x′) xANDy=1<=>(x′=>x)AND(y′=>y) xORy=0&l ...