一、控制浏览器

1、driver.set_window_size(value,value):设置浏览器的大小,单位是像素;
2、driver.back():控制浏览器的后退
3、driver.forward():控制浏览器的前进
4、driver.refresh():刷新浏览器
5、driver.maximize_window():窗口最大化
6、driver.minimize_window():窗口最小化

from selenium import webdriver
import timedriver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://www.baidu.com')#todo 设置浏览器的大小
driver.set_window_size(2000,2000) #单位是像素input_el=driver.find_element_by_xpath('//input[@id="kw"]')
input_el.send_keys('kobe')
butten_el=driver.find_element_by_xpath('//input[@type="submit"]').click()
time.sleep(2)
#todo 控制浏览器的后退
driver.back()time.sleep(2)
#todo 控制浏览器的前进
driver.forward()time.sleep(2)
#todo 刷新浏览器
driver.refresh()

二、WebDriver常用方法

clear() 清楚文本
send_keys(value) 键盘输入
click() 单击元素
submit() 提交表单
size 返回元素的尺寸
text 获取元素的文本
get_attribute(name) 获取属性值
is_displayed() 设置该元素是否用户可见

from selenium import webdriver
import timedriver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://www.baidu.com')input_el=driver.find_element_by_xpath('//input[@id="kw"]')
input_el.send_keys('kobe')
time.sleep(2)
#todo 清楚文本
input_el.clear()
input_el.send_keys('curry')#todo 文本框提交
input_el.submit()
from selenium import webdriver
import timedriver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://www.baidu.com')#获取输入框的尺寸
input_el=driver.find_element_by_xpath('//input[@id="kw"]')
print(input_el.size)#todo 获取文本信息
el1=driver.find_element_by_xpath('//a[@class="mnav c-font-normal c-color-t"][2]')
print(el1.text)#todo 获取target的属性值
print(el1.get_attribute('target'))#todo 返回元素可见
print(el1.is_displayed())

三、获得验证信息

driver.title:获取网页标题
driver.current_url:获取网页url

from selenium import webdriver
import timedriver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://www.baidu.com')print('搜索前——当前的页面标题和url')
print(driver.title)
print(driver.current_url)input_el=driver.find_element_by_xpath('//input[@id="kw"]')
input_el.send_keys('kobe')
butten_el=driver.find_element_by_xpath('//input[@type="submit"]').click()print('搜索后——当前的页面标题和url')
print(driver.title)
print(driver.current_url)

四、显性等待

locator=(‘xpath’,‘//input[@id=“kw1”]’)
webdriverwait=WebDriverWait(driver,5,0.5)
搭配合适的until方法 判断元素是否可见,元素可见继续向下执行
el=webdriverwait.until(expected_conditions.visibility_of_element_located(locator))

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
import timedriver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://www.baidu.com')#设置线性等等待
webdriverwait=WebDriverWait(driver,5,0.5)#搭配合适的until方法 判断元素是否可见,元素可见继续向下执行
locator=('xpath','//input[@id="kw1"]')el=webdriverwait.until(expected_conditions.visibility_of_element_located(locator))el.send_keys('kobe')el1=driver.find_element_by_xpath('//input[@type="submit"]').click()

自定义显性等待

from selenium import webdriverimport timedriver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://www.baidu.com')print('输出一个时间:',time.ctime())#使用循环判断定位的元素是否存在
for i in range(10):try:element=driver.find_element_by_xpath('//input[@id="kw1"]')if element.is_displayed():breakexcept:passtime.sleep(1)
else:print('Timeout')
print('等待时长',time.ctime())

五、隐式等待

driver.implicitly_wait(10)   #单位是秒

六、定位一组元素

获取一组元素
el_list=driver.find_elements_by_xpath(‘//div[@class=“name-box”]/a’)

from selenium import webdriver
import time
driver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://qidian.com/rank/')#获取一组元素
el_list=driver.find_elements_by_xpath('//div[@class="name-box"]/a')
print(len(el_list))#遍历列表
for el in el_list:print(el.text)

执行结果

捕星之执宰星河
7号基地
陈医生,别怂!
请公子斩妖
开局就较真,对面被我吓到报警!
做媒这一块,我谁都不服
曾经,我想做个好人
大明:我,调教木匠皇帝
身为超人弟弟的我却成了祖国人灵境行者
明克街13号
这游戏也太真实了
不科学御兽
家父汉高祖
深空彼岸
择日飞升
我的属性修行人生
我已不做大佬好多年择日飞升
夜的命名术
陈医生,别怂!
我的属性修行人生
我在修仙界长生不死
开局就较真,对面被我吓到报警!
宇宙职业选手
深空彼岸
什么叫六边形打野啊夜的命名术
家父汉高祖
择日飞升
明克街13号
这游戏也太真实了
道诡异仙
大乘期才有逆袭系统
我的属性修行人生
不科学御兽从洪荒逃到武侠
美漫:我的战锤模拟器
曹操穿越武大郎
捉诡二十年,我进入了惊悚游戏
什么叫Carry型上单啊
代价逆转:我在大周斩仙
从体术开始纵横诸天
从欢乐颂开始的影视人生
这个武者太危险

七、多窗口切换

获得当前窗口的句柄:search_windows=driver.current_window_handle
获得当前所有窗口的句柄:all_handles=driver.window_handles
回到上一个窗口:driver.switch_to.window(search_windows)

from selenium import webdriver
import time
driver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://baidu.com')
driver.implicitly_wait(10)#获得百度搜索窗口的句柄
search_windows=driver.current_window_handledriver.find_element_by_xpath('//a[text()="hao123"]').click()
time.sleep(2)#获得当前所有窗口的句柄
all_handles=driver.window_handles
print(all_handles)#切换到hao123页面
for handle in all_handles:if handle!=search_windows:driver.switch_to.window(handle)print(driver.title)driver.find_element_by_xpath('//a[text()="网易"]').click()#回到搜索窗口
driver.switch_to.window(search_windows)

八、警告框的处理

获取警告框: alert=driver.switch_to.alert
alert.text: 获取警告框的文本信息
接收警告框: alert.accept()

from selenium import webdriver
import time
driver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://baidu.com')
driver.implicitly_wait(10)driver.find_element_by_xpath('//span[text()="设置"]').click()
driver.find_element_by_xpath('//span[text()="搜索设置"]').click()#定位保存设置元素
driver.find_element_by_xpath('//a[text()="保存设置"]').click()#获取警告框
alert=driver.switch_to.alert
print(alert.text)       #获取警告框的文本信息#接收警告框
alert.accept()

九、下拉框的处理

from selenium import webdriver
import time
from selenium.webdriver import ActionChains
from selenium.webdriver.support.select import Select
driver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")driver.get('https://www.hao123.com/?src=from_pc')
driver.implicitly_wait(10)select_el=driver.find_element_by_xpath('//span[text()="网页"]').click()#根据value选择
Select(select_el).select_by_value('image')
time.sleep(1)#根据文本选择
Select(select_el).select_by_visible_text('地图')
time.sleep(1)#根据索引选择
Select(select_el).select_by_index(0)
time.sleep(1)

十、下载文件

from selenium import webdriver
import time
import os#配置信息
options=webdriver.ChromeOptions()prefs={'profile_default_content_settings.popups':0,#禁止弹出下载窗口'download.default_directory':os.getcwd()
}
options.add_experimental_option('prefs',prefs)#创建谷歌浏览器的驱动
driver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe",chrome_options=options)
driver.implicitly_wait(10)
#打开网页
driver.get('https://www.python.org/downloads/')#定位网页元素,单击下载
driver.find_element_by_xpath('//p[@class="download-buttons"]//a[@href="https://www.python.org/ftp/python/3.10.5/python-3.10.5-amd64.exe"]').click()

十一、操作Cookie

获取所有的cookies信息 : driver.get_cookies()
添加cookies信息 driver.add_cookie({‘name’:‘yzl’,‘value’:‘yzl111’})
删除cookie driver.delete_cookie(‘yzl’)
删除所有的cookie信息 driver.delete_all_cookies()

from selenium import webdriver
import time
driver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://www.baidu.com')
driver.implicitly_wait(10)#获取所有的cookies信息
print(driver.get_cookies())#添加cookies信息
driver.add_cookie({'name':'yzl','value':'yzl111'})#遍历所有的cookie信息
for item in driver.get_cookies():print(item)#删除cookie
driver.delete_cookie('yzl')#删除所有的cookie信息
driver.delete_all_cookies()
print(driver.get_cookies())

十二、窗口截图和关闭

截图: driver.save_screenshot(‘baidu.png’)

from selenium import webdriver
import time
driver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://www.baidu.com')
driver.implicitly_wait(10)time.sleep(2)
#开始截图操作
driver.save_screenshot('baidu.png')
time.sleep(2)driver.close()

web自动化测试之webdriver api总结(更新)相关推荐

  1. Selenium Web 自动化 - Selenium常用API

    Selenium Web 自动化 - Selenium常用API 2016-08-01 目录 1 对浏览器操作   1.1 用webdriver打开一个浏览器   1.2 最大化浏览器&关闭浏 ...

  2. Web自动化测试之playwright:概述

    playwright是由微软开发的Web UI自动化测试工具, 支持Node.js.Python.C# 和 Java语言,本文将介绍playwright的特性以及它的简单使用. 目录 playwrig ...

  3. web自动化测试之百度经验-HTTP层面的Web Service自动化测试

    2019独角兽企业重金招聘Python工程师标准>>> 前言 我们之前在测试web service的时候尝试过多种方法:比如使用SoapUI:使用本地代理类编程等.前者不太方便做自动 ...

  4. web自动化测试之Selenium

    一.Selenium自动化测试框架 1.什么是框架? 框架(framework)是一个框子--指其约束性,也是一个架子--指其支撑性.是一个基本概念上的结构,用于去解决或者处理复杂的问题 框架是整个或 ...

  5. Java自动化获取页面主题_基于Selenium2+Java的UI自动化(4) - WebDriver API简单介绍

    1. 启动浏览器 前边有详细介绍启动三种浏览器的方式(IE.Chrome.Firefox): private WebDriver driver = null; private String chrom ...

  6. RobotFrameWork Web自动化测试之测试环境搭建

    前言 Robot Framework是一款python编写的功能自动化测试框架.具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行.主要用于轮次很多的验收 ...

  7. 【书签】web自动化测试之selenium

    2019独角兽企业重金招聘Python工程师标准>>> Web 应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作.但是手工执行的任务容易出 ...

  8. web自动化测试之Selenium基础 — XPath定位大全

    1.什么是 XPath? XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 包含一个标 ...

  9. web自动化测试之Firefox启动

    版本必须匹配,要不然会出错,找了很多Chrome和IE的版本始终没办法适配,为此浪费了很多时间,终于找到了一个靠谱的Firefox 1.版本匹配参考如下: selenium3.5.0,firefox5 ...

最新文章

  1. 深度解析VC中的消息(上)
  2. The FLARE On Challenge
  3. docker启动nginx,并挂载目录及docker容器中文乱码
  4. Maven不会吮吸。 。 。 但是Maven文件会
  5. Nexus协议,闲鱼一体化开发的幕后玩家
  6. 在XIB里面关于@property,@synthesize,release,dealloc的怪现象
  7. 五一惠州双月湾游,海滩,帐篷,野营,烧烤、篝火晚会
  8. 公安部:正研究出台***犯罪司法解释
  9. Spring Servlet 拦截器 过滤器
  10. 《Java并发编程实践》笔记1——并发编程基础
  11. html页面转excel文件,html格式文件转excel
  12. 金蝶k/3 现金流量表编制口诀
  13. ValueError: `generator` yielded an element of shape (2,) where an element of shape (?, ?) was expect
  14. 最新国外虚拟主机对比评论国外虚拟主机购买指南
  15. [转]在数学的海洋中飘荡
  16. 知道创宇云防御平台通过2021上半年可信云安全运营中心能力评估
  17. 直播系统定制开发中安卓直播间websocket协议破解还原
  18. 李炎恢bootstrap做轮播器的方法与思路
  19. 如何查看git账号以及如何切换登录git账号
  20. 【研究生】计算机架构的新黄金时代,两位图灵奖得主最新力作

热门文章

  1. Simple XML解析XML
  2. CC2640之OAD固件升级实操(使用外部Flash)
  3. Oracle ebs pon,OracleApps(EBS)模块名称SAP模块名称
  4. 5.20 使用扭拧命令制作惊悚文字特效 [Illustrator CC教程]
  5. 标签软件点打印弹出打印到文件怎么解决
  6. 机器学习开源数据集整理
  7. 7-2 最大公约数和最小公倍数系列
  8. Django admin操作
  9. Mysql中到底什么是索引下推,一分钟看懂
  10. python语音输入功能_“在Python中如何实现一点按钮就出现语音输入语音,输入语音后可以自动翻译为文字的程序?“python语音识别教程...