浏览器操作

  1. # 刷新
  2. driver.refresh()
  3.  
  4. # 前进
  5. driver.forward()
  6.  
  7. # 后退
  8. driver.back()

获取标签元素

  1. # 通过ID定位目标元素
  2. driver.find_element_by_id('i1')
  3.  
  4. # 通过className定位目标元素
  5. driver.find_element_by_class_name('c1')
  6.  
  7. # 通过name属性定位目标元素
  8. driver.find_element_by_name('n1')
  9.  
  10. # 通过Xpath定位目标元素
  11. driver.find_element_by_xpath('//*[@id="i1"]')
  12.  
  13. # 通过css Selector定位目标元素
  14. driver.find_element_by_css_selector('#i1')
  15.  
  16. # 通过标签名称定位(注:在一个页面中,标签一定会重复,所以不用这个来进行定位)
  17. driver.find_element_by_tag_name('input')
  18.  
  19. # 通过标签中的文本查找元素
  20. driver.find_element_by_link_text('登录')
  21.  
  22. # 通过标签中文本的模糊匹配查找
  23. driver.find_elements_by_partial_link_text('录')

获取标签元素常用的一共有8种定位方式,而Selenium实际提供了18种定位方式,还有8种是上面的复数形式,这里就不一一介绍了,实际运用中并不常用,还有2种实际上是这上面所说16种的底层封装。参数化的一种调用方式而已。

Cookie操作

  1. # 根据cookieKey,获取cookie信息
  2. cookie = driver.get_cookie('cookieKey')
  3.  
  4. # 获取所有cookie信息
  5. cookies = driver.get_cookies()
  6.  
  7. # 添加cookie,严格按照格式添加,cookie的key为name,value为value
  8. driver.add_cookie({'name':'tmp','value':''})
  9.  
  10. # 删除所有cookie信息
  11. driver.delete_all_cookies()
  12.  
  13. # 根据cookieKey删除对应cookie
  14. driver.delete_cookie('UiCode')

窗口操作

  1. # 获取当前浏览器的大小
  2. driver.get_window_size()
  3.  
  4. # 通过像素设置浏览器的大小
  5. driver.set_window_size('width','height')
  6.  
  7. # 获取当前窗口针对于Windows的位置的坐标x,y
  8. driver.get_window_position()
  9.  
  10. # 设置当前窗口针对Windows的位置,x,y
  11. driver.set_window_position(20,20)
  12.  
  13. # 最大化当前窗口,不需要传参
  14. driver.maximize_window()
  15.  
  16. # 返回当前操作的浏览器句柄
  17. driver.current_window_handle
  18.  
  19. # 返回所有打开server的浏览器句柄
  20. driver.window_handles

截取当前页面

  1. # 获取当前页面的二进制图片数据,需要自己去写入文件
  2. driver.get_screenshot_as_png()
  3.  
  4. # as_png的上层封装,只需要传入图片名称自动写成图片
  5. driver.get_screenshot_as_file('fileName.png')

执行JavaScript语句

  1. # 执行JavaScript语句
  2. driver.execute_script('JavaScript Commond')
  3.  
  4. # 例:
  5. # 通过js来操作滚动条
  6. # 参数1:x 参数2: y
  7. window.scrollTo(100,400);

关闭与退出

  1. # 当开启多个时,关闭当前页面
  2. driver.close()
  3.  
  4. # 退出并关闭所有页面驱动
  5. driver.quit()

其他

  1. # 返回页面源码
  2. driver.page_source
  3.  
  4. # 返回tag标题
  5. driver.title
  6.  
  7. # 返回当前Url
  8. driver.current_url
  9.  
  10. # 获取浏览器名称 如:chrome
  11. driver.name

ElementApi接口

  1. # 根据标签属性名称,获取属性value
  2. element.get_attribute('style')
  3.  
  4. # 向输入框输入字符串 如果input的type为file类型 可以输入文件绝对路径上传文件
  5. element.send_keys()
  6.  
  7. # 清除文本内容
  8. element.clear()
  9.  
  10. # 鼠标左键点击操作
  11. element.click()
  12.  
  13. # 通过属性名称获取属性
  14. element.get_property('id')
  15.  
  16. # 返回元素是否可见 True or False
  17. element.is_displayed()
  18.  
  19. # 返回元素是否被选中 True or False
  20. element.is_selected()
  21.  
  22. # 返回标签元素的名字
  23. element.tag_name
  24.  
  25. # 获取当前标签的宽和高
  26. element.size
  27.  
  28. # 获取元素的文本内容
  29. element.text
  30.  
  31. # 模仿回车按钮 提交数据
  32. element.submit()
  33.  
  34. # 获取当前元素的坐标
  35. element.location
  36.  
  37. # 截取图片
  38. element.screenshot()

常见异常

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

Selenium-WebDriverApi接口详解的更多相关文章

  1. Selenium学习之==>WebDriverApi接口详解

    浏览器操作 driver.back() # 后退 driver.forward() # 前进 driver.refresh() # 刷新 窗口操作 driver.get_window_size() # ...

  2. Selenium:WebDriverApi接口详解

    浏览器操作 # 刷新 driver.refresh() # 前进 driver.forward() # 后退 driver.back() Cookie操作 # 根据cookieKey,获取cookie ...

  3. selenium之webdriverAPI接口详解

    1. 浏览器操作 driver.maximize_window() #最大化窗口driver.execute_script('window.scrollTo(0,0);') #滚动窗口到最上面driv ...

  4. JDBC常用接口详解

    JDBC中常用接口详解 ***DriverManager 第一.注册驱动 第一种方式:DriverManager.registerDriver(new com.mysql.jdbc.Driver()) ...

  5. Java6.0中Comparable接口与Comparator接口详解

    Java6.0中Comparable接口与Comparator接口详解 说到现在,读者应该对Comparable接口有了大概的了解,但是为什么又要有一个Comparator接口呢?难道Java的开发者 ...

  6. socket接口详解

    1. socket概述 socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket起源于UNIX,在Unix一切 ...

  7. “全栈2019”Java第八十四章:接口中嵌套接口详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. “全栈2019”Java第八十三章:内部类与接口详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  9. Java接口 详解(二)

    上一篇Java接口 详解(一)讲到了接口的基本概念.接口的使用和接口的实际应用(标准定义).我们接着来讲. 一.接口的应用—工厂设计模式(Factory) 我们先看一个范例: package com. ...

  10. [转载]MII/MDIO接口详解

    原文地址:MII/MDIO接口详解作者:心田麦浪 本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在 ...

随机推荐

  1. Visual Studio Code配置Python开发环境

    1.安装Python插件 在VScode界面按Crtl+Shift+P或者F1 输入ext install 直接安装Python,也就是点击它,然后等待,安装好后会提示你重启 2.配置运行Python ...

  2. dp专题练习

    顺便开另外一篇放一些学过的各种dp dp总结:https://www.cnblogs.com/henry-1202/p/9194066.html 开坑先放15道题,后面慢慢补 目标50道题啦~~,目前 ...

  3. 题解——洛谷 P2680 NOIP提高组 2015 运输计划

    树上差分加上二分答案 详细题解待填坑 #include <cstdio> #include <algorithm> #include <cstring> using ...

  4. Dockerize PostgreSQL

    Dockerize PostgreSQL Installing PostgreSQL on Docker Assuming there is no Docker image that suits yo ...

  5. Tomcat服务器环境变量配置及在Eclipse中启动和配置

    本文原创,转载需注明出处: 如何配置在Eclipse中配置Tomcat服务器 1.在配置的时候要右击‘我的电脑‘看是否安装了jdk,配置了jdk的环境变量,看是否有classpath和path是否指向 ...

  6. 【转载】C++宏定义详解

    摘自:http://blog.chinaunix.net/uid-21372424-id-119797.html   C++宏定义详解 2011-02-14 23:33:24   分类: C/C++ ...

  7. Qt实在太漂亮了

    我很久之前就想用Qt,无奈对c++不熟悉,学习代价太大.想使用pyqt曲线救国,搞了好久的环境后放弃了.昨天又看了个很漂亮的qt例子,太漂亮了,让我很想进圈子.就从现在开始吧!!

  8. SAP FI CO模块常用事务代码

                                                                                                        ...

  9. JS基础---Dom的基本操作

    DOM的增删改查 增: 1.创建一个元素节点 document.createElement() 创建新的<p> 元素:var para=document.createElement(&qu ...

  10. 安装tensorflow-gpu

    pip install --upgrade tensorflow-gpu import tensorflow as tf sess = tf.Session() 如果提示如下 -- ::] Your ...