浏览器操作:

#刷新
driver.refresh()
from selenium import webdriver
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
import time
time.sleep(2)
driver.refresh() #前进
driver.forward()
#后退
driver.back

获取标签元素

from selenium import webdriver
driver=webdriver.Chrome()
driver.get('http://www.imdsx.cn')

#通过ID定位目标元素
driver.find_element_by_id('i1').send_keys(1111)#向页面发送文本‘11111’
# 通过className定位目标元素
driver.find_element_by_class_name('c1').send_keys(1111)
#通过name属性定位目标元素
driver.find_element_by_name('n1').send_keys(1111)
#通过Xpath属性定位目标元素
driver.find_element_by_xpath('//input[@placeholder="请通过XPATH定位元素"]').send_keys(1111)

#通过css Selector定位目标元素
driver.find_element_by_css_selector('[maxlength="20"]').send_keys(2222)

# 通过标签名称定位(注:在一个页面中,标签一定会重复,所以不用这个来进行定位)
driver.find_element_by_tag_name('input').send_keys('tag name')

#通过标签中的文本查找元素
driver.find_element_by_link_text('登录').click()

#通过标签中文本的模糊匹配查找
driver.find_element_by_partial_link_text('录').click()

获取标签元素常用的一共有8种定位方式,而Selenium实际提供了18种定位方式,还有8种是上面的复数形式,实际种一般用不到,还有2种是这上面16种的底层封装。参数化的一种调用方式。

复数:

e=driver.find_elements_by_class_name('classname')[0]
e.send_keys(1111)
print(e)
print(type(e)) 接受两个参数 形参1 以什么形式定位 形参2 定位value是什么
driver.find_element_by_id('i1')
driver.find_element('id','i1').send_keys(1111)
driver.find_elements('id','i1')[0].send_keys(2222)

一般都直接用driver.find_element_by_css_selector(),因为底层只要符合w3c的都转化为css_selector

窗口操作:

#获取当前浏览器的大小
driver.get_window_size()
#通过宽和高对size进行设置
driver.set_window_size('100','200')
# 获取当前窗口针对于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
截取当前页面:
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.get_screenshot_as_file('d.png') 执行JavaScript语句
# 执行JavaScript语句
driver.execute_script('window.scrollTo(0,0);')#执行js的api,通过js来操作滚动条,滚动到最上面

关闭与退出:

#当开启多个页面时,关闭当前页面
driver.close()
#退出并关闭所有页面驱动
driver.quit()
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("http://ui.imdsx.cn/uitester/")
driver.maximize_window()#将窗口放大
driver.execute_script('window.scrollTo(0,0);')#执行js的api
driver.find_element_by_css_selector('[href="/new-index/"]').click()
handles=driver.window_handles#返回所有打开server的浏览器句柄
print(handles)#返回list
driver.switch_to.window(handles[1])
driver.find_element_by_css_selector('#newtag').send_keys(1111)#找到新页面上的元素
driver.close()#关闭当前tab页
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("http://ui.imdsx.cn/uitester/")
driver.maximize_window()#将窗口放大
driver.execute_script('window.scrollTo(0,0);')#执行js的api
driver.find_element_by_css_selector('[href="/new-index/"]').click()
handles=driver.window_handles
print(handles)
driver.switch_to.window(handles[1])
driver.find_element_by_css_selector('#newtag').send_keys(1111)
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()
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("http://ui.imdsx.cn/uitester/")
driver.maximize_window()#将窗口放大
driver.execute_script('window.scrollTo(0,0);')#执行js的api
e=driver.find_element_by_css_selector('#i1')
e.send_keys(1111)
import time
time.sleep(1)
e.clear() #清除文本框内内容


Selenium-WebDriverApi介绍的更多相关文章

  1. python selenium自动化测试之路(1)--分层测试概念、selenium工具介绍

    1.分层自动化测试概念 传统的自动化市场更关注产品UI层的自动化测试,而分层的自动化测试倡导产品开发的不同阶段都需要自动化测试 大多公司与研发团队其实是忽略了单元测试与集成测试阶段的自动化测试工作,所 ...

  2. Selenium 工具介绍、安装、配置及使用

    概念 selenium是一款跨平台开源工具,用于web的功能完整性測试,想做压力測试的能够换软件了 先看一眼官方站 http://docs.seleniumhq.org/download/ 首先要FQ ...

  3. Selenium API 介绍

    Selenium API 介绍 我们先前学习过元素定位,大家不知道学习得怎么样了,当你学会元素定位之后就能够跟着我的脚步学习本节Selenium 经常使用的API 介绍 Seleium 为什么能模拟人 ...

  4. 自动化测试-Selenium家谱介绍

    一.自动化测试定义 自动化测试是通工具录制或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证. 二.什么样的项目适合做自动化测试 1.需求明确,不会 ...

  5. python基础 — Selenium 详细介绍

    一.Selenium+Python环境搭建及配置 1.1 selenium 介绍 selenium 是一个 web 的自动化测试工具,不少学习功能自动化的同学开始首选 selenium ,因为它相比 ...

  6. robotframework - selenium Api介绍

    一.介绍下selenium常用的api *** Settings ***Library SeleniumLibraryResource baidu业务.txtResource UI分层.txt *** ...

  7. Selenium简单介绍

    WEB自动化测试:指WEB应用系统从用户界面层面进行的自动化测试.通过用户界面测试内部的业务逻辑. 自身特点:(一)WEB页面上出现的元素有可能具有不确定性: (二)不同操作系统上不同WEB浏览器之间 ...

  8. 《selenium2 python 自动化测试实战》(20)——Selenium工具介绍

    (一)Selenium IDE Firefox的一个插件,有助于我们理解测试框架.在附加组件里搜索下载,一般搜的结果里前几个都不是,得点那个查看更多才行,找到这个: 安装以后浏览器工具栏会有: 安装好 ...

  9. [Selenium] Grid 介绍

    Selenium Grid 支持分布式测试,使测试人员可在分布式环境中进行测试 一般而言,在面临以下情况时可考虑使用Selenium Grid : 1.测试多个浏览器或单个浏览器多个版本,或测试不同操 ...

  10. UI自动化测试简介及Selenium工具的介绍和环境搭建

    自动化测试简介 1.1何为自动化测试? 是把以人为驱动的测试转化为机器执行的一种过程,它是一种以程序测试程序的过程.换言之,就是以程序实现的方式来代替手工测试. 1.2自动化测试分类 分为功能自动化测 ...

随机推荐

  1. python curl_get-pip.py Installing with get-pip.py

    w curl https://bootstrap.pypa.io/get-pip.py > curl_get-pip.pypython curl_get-pip.py https://pip.p ...

  2. SVN 客户端不显示图标解决方案

    下图为没有设置之前,文件夹不显示svn图标 SVN客户端不显示图标解决方案:右键svn->设置->图标覆盖->状态缓存选择"Windows外壳"->确定,刷 ...

  3. Altium Designer chapter7总结

    PCB设计高级进阶中需要注意如下: (1)PCB层集合管理:对于后期的处理可以看到不同层的相关信息. (2)内电层的分割:对于多层板的设计,特别是电源层中有不同类型的电源时需要考虑电源的分割. (3) ...

  4. 【ABAP系列】SAP ABAP 生成随机数的函数

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP 生成随机数的函数 ...

  5. mssql 堆叠注入

    添加用户 exec master.dbo.xp_cmdshell 'net user leeww 123456 /add' 提升权限 exec master.dbo.xp_cmdshell 'net ...

  6. 003/node.js--代理服务(解决跨域问题)

    业务描述: 1.web前端发送http请求 2.web后端为https协议 如何保证web前端发送http请求到web后端(跨域问题:域名不一致即跨域), 因此用node.js写了个代理服务,转发前端 ...

  7. Dev Express之ImageComboBoxEdit,RepositoryItemImageComboBox使用方式

     Dev Express之ImageComboBoxEdit,RepositoryItemImageComboBox使用方式 1.使用ImageComboBoxEdit实现下拉框键值数据函数 publ ...

  8. git ssh key配置&解决git每次输入密码

    git ssh key配置&解决git每次输入密码:https://blog.csdn.net/qq_42817227/article/details/81415404

  9. 单调栈 && 洛谷 P2866 [USACO06NOV]糟糕的一天Bad Hair Day(单调栈)

    传送门 这是一道典型的单调栈. 题意理解 先来理解一下题意(原文翻译得有点问题). 其实就是求对于序列中的每一个数i,求出i到它右边第一个大于i的数之间的数字个数c[i].最后求出和. 首先可以暴力求 ...

  10. 洛谷P4391 [BOI2009]Radio Transmission 无线传输

    (https://www.luogu.org/problemnew/show/P4391) 题目描述 给你一个字符串,它是由某个字符串不断自我连接形成的. 但是这个字符串是不确定的,现在只想知道它的最 ...