Selenium-WebDriverApi接口
webdriver获取元素的18种方式: 1、单数模式8 种
id定位模式
element = driver.find_element_by_id('i1')
element.send_keys('UI 自动化')
print(element)
class 定位
element= driver.find_element_by_class_name('classname')
element.send_keys('你猜吧') name定位
element= driver.find_element_by_name('name')
element.send_keys('你猜吧') css定位
element= driver.find_element_by_css_selector('input[placeholder="请通过CSS SELECTOR定位元素"]')
element.send_keys('shenjing') xpath定位
element= driver.find_element_by_xpath("//*[@id='basebody']/div/div[1]/div[6]/input")
element.send_keys('shenjing') LINKTEXT 超链接文案 element= driver.find_element_by_link_text("跳转大师兄博客地址")
element.click() 模糊 匹配
driver.execute_script("window.scrollTo(0,0);") #执行js
element = driver.find_element_by_partial_link_text("跳转大师")
element.click() TAGNAME
element = driver.find_element_by_tag_name("input") #返回获取的第一个
element.send_keys("PPPP") 2、复数模式8 种
element = driver.find_elements_by_tag_name("input")[1] #返回的是相同的筛选条件筛选结果的list
print(element)
element.send_keys("今天!!!")
...... 3、底层实现2种
element = driver.find_element('By.ID','[id="i1"]')
element.send_keys('UI 自动化') 这18种调用方式最常用的是css和xpath 其他的都不常用 窗口操作 WebDriverApi接口:
webdriver获取元素的18种方式: 1、单数模式8 种
id定位模式
element = driver.find_element_by_id('i1')
element.send_keys('UI 自动化')
print(element)
class 定位
element= driver.find_element_by_class_name('classname')
element.send_keys('你猜吧') name定位
element= driver.find_element_by_name('name')
element.send_keys('你猜吧') css定位
element= driver.find_element_by_css_selector('input[placeholder="请通过CSS SELECTOR定位元素"]')
element.send_keys('shenjing') xpath定位
element= driver.find_element_by_xpath("//*[@id='basebody']/div/div[1]/div[6]/input")
element.send_keys('shenjing') LINKTEXT 超链接文案 element= driver.find_element_by_link_text("跳转大师兄博客地址")
element.click() 模糊 匹配
driver.execute_script("window.scrollTo(0,0);") #执行js
element = driver.find_element_by_partial_link_text("跳转大师")
element.click() TAGNAME
element = driver.find_element_by_tag_name("input") #返回获取的第一个
element.send_keys("PPPP") 2、复数模式8 种
element = driver.find_elements_by_tag_name("input")[1] #返回的是相同的筛选条件筛选结果的list
print(element)
element.send_keys("今天!!!")
...... 3、底层实现2种
element = driver.find_element('By.ID','[id="i1"]')
element.send_keys('UI 自动化') 这18种调用方式最常用的是css和xpath 其他的都不常用 窗口操作 # 返回当前操作的浏览器句柄
driver.current_window_handle # 返回所有打开server的浏览器句柄
driver.window_handles
以上两个用作切换浏览器的tab时封装在pyse中 #获取当前浏览器的大小
driver.get_window_size() #通过像素设置浏览器的大小
driver.set_window_size('width','height') #获取当前窗口针对于windows的位置的坐标x,y
driver.get_window_position(20,20) #最大化当前窗口,不需要任何参数
driver.maximize_window() 截取图片
1、 获取当前页面的二进制图片数据,需要自己去写入文件
driver.get_screenshot_as_png() 2、as_png的上层封装,只需要传入图片名称自动写成图片
driver.get_screenshot_as_file('fileName.png') 3、# element截取
element.screenshot() 关闭和退出
# driver.quit() #关闭所有webdriver的页面
# driver.close() #关闭当前页面 执行javascript语句
driver.execute_script('window.scrollTo(100,400);') cookie操作
根据cookiekey,获取cookie信息
cookie = driver.get_cookie('key') 获取所有的cookie信息
cookies = driver.get_cookies() #添加cookie,严格按照格式添加,cookie的name是key,value是值
driver.add_cookie({'name':'fuck','value':''}) #删除所有 cookie信息
driver.delete_all_cookies() #根据key删除对应的cookie
driver.delete_cookie('fuck') 浏览器操作
1、driver.refresh() 刷新
2、driver.forward() 前进
3、driver.back() 后退
ElementApi接口 element.get_attribute('style') #根据标签属性名称获取value
element.send_keys() #想输入框框中输入字符串如果file类型,可以输入文件的绝对路径上传
element.clear() #清楚文本内容
element.click() #鼠标点击操作
element.is_displayed() #返回元素是否课件 True or False
element.is_selected() #返回原色是否被选中 True or False
elemen.screenshot() 截图
# 通过属性名称获取属性
element.get_property('id')
# 返回标签元素的名字
element.tag_name # 获取当前标签的宽和高
element.size # 获取元素的文本内容
element.text # 模仿回车按钮 提交数据
element.submit()
常见异常: NoSuchElementException:没有找到元素 NoSuchFrameException:没有找到iframe NoSuchWindowException:没找到窗口句柄handle NoSuchAttributeException:属性错误 NoAlertPresentException:没找到alert弹出框 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 ...
- Java +selenium Navigation接口介绍
Navigation接口主要实现对浏览器的前进.后退.打开网址.刷新当前页面等操作的. void back():就是操作当前页面后退,相当于网页的后退按钮. void forward():就是操作当前 ...
- Java + selenium Timeout接口用法介绍
上一篇介绍了关于如何启动浏览器的方法.这篇文章要介绍一下,上一篇代码中关于等待时间的接口方法,代码如下: driver.manage().timeouts().pageLoadTimeout(5, T ...
- ui自动化---WebDriverApi接口
一.webdriver client原理 当测试脚本启动Chrome的时候,selenium-webdriver 会首先在新线程中启动Chrome浏览器.启动后selenium-webdriver会将 ...
- Selenium各种工具比较
Selenium 1.0 Selenium 1.0是第一个基于浏览器的开源自动化测试工具.它可以使用所有支持http库的编程语言,也可以运行在所有支持javascript的浏览器上.当然它 也有它的缺 ...
- python接口自动化(二)--什么是接口测试、为什么要做接口测试(详解)
简介 上一篇和大家一起科普扫盲接口后,知道什么是接口,接口类型等,对其有了大致了解之后,我们就回到主题-接口测试. 什么是接口测试 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统 ...
- 自动化测试Java一:Selenium入门
From: https://blog.csdn.net/u013258415/article/details/77750214 Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介 ...
随机推荐
- redis基础学习
redis 是一个高性能的key-value数据库. redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用.它提供了java ...
- Rinetd 通过ECS端口转发到内网RDS
前置条件 实现目的:开发本地电脑需要连接没有外网地址的RDS,通过ECS进行转发连接到RDS数据库 客户 PC 终端可以 ssh 登录有公网的 ECS 服务器. 有公网的 ECS 服务器可以通过内网访 ...
- 标准C语言(7)
函数调用过程中通常伴随着两个函数之间的数据传递.数据传递存在两个完全相反的方向(可以从调用函数,向被调用函数传递数据也可以从被调用函数向,调用函数传递数据),任意方向的数据传递都使用被调用函数提供的存 ...
- (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
在idea上怎么才能使用Spring的热部署 这里仅用Maven做介绍 (1)在Maven中添加依赖 (2)在插件配置 但是,为什么配置了还是没有用呢 ?! 这是因为idea默认是没有自动编译的,我们 ...
- docker资源隔离实现方式
默认情况下,一个容器没有资源限制,几乎可以使用宿主主机的所有资源.docker提供了控制内存.cpu.block io.但是实际上主要是namespace和cgroup控制资源的隔离. Docker的 ...
- 【VUE】Vue 源码解析
Vue 源码解析 Vue 的工作机制 在 new vue() 之后,Vue 会调用进行初始化,会初始化生命周期.事件.props.methods.data.computed和watch等.其中最重要的 ...
- spark 三种数据集的关系(一)
Catalyst Optimizer: Dataset 数据集仅可用Scala或Java.但是,我们提供了以下上下文来更好地理解Spark 2.0的方向数据集是在2015年作为Apache Spark ...
- 【JZOJ5430】【NOIP2017提高A组集训10.27】图
题目 有一个n个点的无向图,给出m条边,每条边的信息形如\(<x,y,c,r>\) 给出q组询问形如\(<u,v,l,r>\) 接下来解释询问以及边的意义 询问表示,一开始你在 ...
- Java基础——集合框架(待整理)
ArrayList 和 和 Vector 的区别 从代码的最终的操作形式上可以发现,代码的输出结果与之前是一样的,而且没有区别,但是两者的区别还在于其内部的组成上. No. 区别点 Vector Ve ...
- Django+BootstrapTable实现表格分页
models.py: from django.db import models # Create your models here. class Article(models.Model): titl ...