【转】Selenium-WebDriverApi接口详解
浏览器操作
# 刷新
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':''})
# 删除所有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
# 没有找到iframe
NoSuchFrameException
# 没找到窗口句柄handle
NoSuchWindowException
# 属性错误
NoSuchAttributeException
# 没找到alert弹出框
NoAlertPresentException
# 元素不可见
ElmentNotVisibleException
# 元素没有被选中
ElementNotSelectableException
# 查找元素超时
TimeoutException
【转】Selenium-WebDriverApi接口详解的更多相关文章
- Selenium学习之==>WebDriverApi接口详解
浏览器操作 driver.back() # 后退 driver.forward() # 前进 driver.refresh() # 刷新 窗口操作 driver.get_window_size() # ...
- Selenium:WebDriverApi接口详解
浏览器操作 # 刷新 driver.refresh() # 前进 driver.forward() # 后退 driver.back() Cookie操作 # 根据cookieKey,获取cookie ...
- selenium之webdriverAPI接口详解
1. 浏览器操作 driver.maximize_window() #最大化窗口driver.execute_script('window.scrollTo(0,0);') #滚动窗口到最上面driv ...
- JDBC常用接口详解
JDBC中常用接口详解 ***DriverManager 第一.注册驱动 第一种方式:DriverManager.registerDriver(new com.mysql.jdbc.Driver()) ...
- Java6.0中Comparable接口与Comparator接口详解
Java6.0中Comparable接口与Comparator接口详解 说到现在,读者应该对Comparable接口有了大概的了解,但是为什么又要有一个Comparator接口呢?难道Java的开发者 ...
- socket接口详解
1. socket概述 socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket起源于UNIX,在Unix一切 ...
- “全栈2019”Java第八十四章:接口中嵌套接口详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第八十三章:内部类与接口详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Java接口 详解(二)
上一篇Java接口 详解(一)讲到了接口的基本概念.接口的使用和接口的实际应用(标准定义).我们接着来讲. 一.接口的应用—工厂设计模式(Factory) 我们先看一个范例: package com. ...
- [转载]MII/MDIO接口详解
原文地址:MII/MDIO接口详解作者:心田麦浪 本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在 ...
随机推荐
- [转]对于BIO/NIO/AIO,你还只停留在烧开水的水平吗
原文:https://www.javazhiyin.com/40106.html https://coding.imooc.com/class/381.html ------------------- ...
- python打造批量关键词排名查询工具
自己做站点的时候,都看看收录和关键词排名什么的,所以打造的这个批量关键词查询工具. #encoding:utf-8 import urllib,re,random,time,sys,StringIO, ...
- finalize关键字小结
1.先看一下Object类中的finalize方法:可见里面什么也没有,说明让我们自己重写 * @throws Throwable the {@code Exception} raised by th ...
- django.db.models.fields.related_descriptors.RelatedObjectDoesNotExist
Enrollment has no customer.
- STM32的指令周期
在keil中编程时,写了一行代码,然后就想知道,执行这句C代码需要多长时间. 时钟周期在这就不解释了,频率的倒数. 指令周期,个人理解就是cpu执行一条汇编指令所需要的时间. 我们知道cm3使用的三级 ...
- LOJ 103子串查找——用hash代替kmp算法
题意 给出两个字符串 $s_1,s_2$,求 $s_2$ 在 $s_1$ 中出现的次数. 分析 预处理出两个字符串的哈希值,再逐位比较. 时间复杂度为 $O(n+m)$,和 $kmp$ 算法一样. 可 ...
- selenium之python源码解读-expected_conditions
一.expected_conditions 之前在 selenium之python源码解读-WebDriverWait 中说到,until方法中method参数,需要传入一个function对象,如果 ...
- Linux 查看实时网卡流量的几种方式
在工作中,我们经常需要查看服务器的实时网卡流量.通常,我们会通过这几种方式查看Linux服务器的实时网卡流量. 1. sar -n DEV 1 2 sar命令包含在sysstat工具包中,提供系统的众 ...
- python 列表 【基本使用功能】
#!/usr/bin/python # -*- coding: UTF-8 -*- # by Mercury_Lc list1 = list # 开个新的列表的方法 list2 = [] list1 ...
- class与computed一起应用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...