获取标签元素

# 通过ID定位目标元素
driver.find_element_by_id('#i1')
# 通过classname定位目标元素
driver.find_element_by_class_name('c1')
# 通过name属性定位目标元素
driver.find_element_by_name('name')
# 通过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_element_by_partial_link_text('大师兄')

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

浏览器操作

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

窗口操作

# 获取当前浏览器大小
driver.get_window_size()
# 通过像素设置浏览器大小
driver.set_window_size('width:100px','height:100px')
# 获取当前窗口针对于windows的位置的坐标x,y
driver.get_window_position()
# 设置当前窗口针对windows的位置,x,y
driver.set_window_position(,)
# 最大化当前窗口,不需要传参
driver.maximize_window()
# 返回当前操作的浏览器句柄
driver.current_window_handle
# 返回所有打开server的浏览器句柄
driver.window_handles

截取当前页面

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

执行JavaScript语句

# 执行JavaScript语句
driver.execute_script('JavaScript Command')
# 例:通过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.click()
# 清除文本内容
element.clear()
# 通过属性名称获取属性
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:查找元素超时

Selenium之WebdriverApi详解的更多相关文章

  1. Python爬虫之selenium库使用详解

    Python爬虫之selenium库使用详解 本章内容如下: 什么是Selenium selenium基本使用 声明浏览器对象 访问页面 查找元素 多个元素查找 元素交互操作 交互动作 执行JavaS ...

  2. selenium模块用法详解

    selenium用法详解 selenium主要是用来做自动化测试,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题. 模拟浏览器进行网页加载,当requests,urllib无法正常获取 ...

  3. Selenium常用API详解介绍

    转至元数据结尾   由 黄从建创建, 最后修改于一月 21, 2019 转至元数据起始   一.selenium元素定位 1.selenium定位方法 2.定位方法的用法 二.控制浏览器操作 1.控制 ...

  4. selenium webdriver API详解(三)

    本系列主要讲解webdriver常用的API使用方法(注意:使用前请确认环境是否安装成功,浏览器驱动是否与谷歌浏览器版本对应) 一:获取页面元素的文本内容:text 例:获取我的博客名字文本内容 代码 ...

  5. selenium webdriver API详解(二)

    本系列主要讲解webdriver常用的API使用方法(注意:使用前请确认环境是否安装成功,浏览器驱动是否与谷歌浏览器版本对应) 一:获取当前页面的title(一般获取title用于断言) from s ...

  6. selenium webdriver API详解(一)

    本系列主要讲解webdriver常用的API使用方法(注意:使用前请确认环境是否安装成功,浏览器驱动是否与谷歌浏览器版本对应) 一:打开某个网址:get() from selenium import ...

  7. selenium工作原理详解

    selenium简介 Selenium是一个用于Web应用程序自动化测试工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11), ...

  8. selenium 使用教程详解-java版本

    第一章 Selenium 概述 1.1.Selenium 发展史 ​ Selenium是一系列基于Web的自动化工具,提供一套测试函数,用于支持Web自动化测试.函数非常灵活,能够完成界面元素定位.窗 ...

  9. selenium等待方式详解

    这些方式仅供参考,实际使用体验并不好,最好对find_element()方法进行二次封装. # coding=utf-8 from time import sleep from selenium im ...

随机推荐

  1. PHP错误 。Parse error: syntax error, unexpected T_INLINE_HTML, expecting T_ENDSWITCH or T_CASE or T_DEFAULT

    If you wan't to use the alternative syntax for switch statements this won't work: <div> <?p ...

  2. 【cs229-Lecture4】GLMS:选定指数分布族,如何用它来推导出GLM?

    在Lecture4中有3部分内容: Newton’s method        牛顿方法 Exceponential Family        指数分布族 Generalized Linear M ...

  3. 在centos7 ubuntu15.04 上通过bosh-lite 搭建单机环境cloudfoundry

    Bosh-lite简介       bosh-lite 是一个单机部署cloudfoundry的实验性工具,用于开发人员做poc 验证.Bosh-lite目前支持仅MAC OS X和Linux系统.B ...

  4. canvas - drawImage()方法绘制图片不显示的问题

    canvas有个很强大的api是drawImage()(w3c): 他的主要功能就是绘制图片.视频,甚至其他画布等.   问题: 慕名赶来,却一脚踩空,低头一看,地上一个大坑. 事情是这样的,在我看完 ...

  5. Python3.6的组件numpy的安装

    安装numpy,scipy,scikit-learn,matplotlib 下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/ 我的版本是win10+py ...

  6. LeetCode 38 Count and Say(字符串规律输出)

    题目链接:https://leetcode.com/problems/count-and-say/?tab=Description   1—>11—>21—>1211—>111 ...

  7. mongodb gridfs基本使用

    Mongodb GridFS图片文件存储解决方案 之前解决方案是接收图片数据后,将图片直接存储到盘阵,然后通过Apache做服务器,将图片信息存储到数据库,并且存储一个Apache的访问路径. 目前需 ...

  8. 【读书笔记】setsockopt

    setsockopt   设置套接口的选项. #include <sys/types.h> #include <sys/socket.h> int setsockopt(int ...

  9. Thinkphp框架下PHPExcel实现Excel数据的批量化导入导出

    第一步:下载官方的PHPExcel文件,下载地址https://github.com/PHPOffice/PHPExcel 第二步:解压打开,将PHPExcel\Classes\全部文件拷贝到thin ...

  10. layer.load()加载层如何加入文字描述

    https://fly.layui.com/jie/3586/ https://www.layui.com/doc/modules/layer.html#layer.load //loading层va ...