Selenium 自动化测试工具
1 介绍
Selenium是浏览器的自动化测试工具,使用它可以控制浏览器各种点击等操作。
2 环境搭建
先安装Chrome等浏览器,然后安装对应版本的ChromeDriver驱动程序,然后pip安装Selenium
2 代码示例
看完,这个程序,你就掌握Selenium的基本用法
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver import ActionChains
from selenium.common.exceptions import NoSuchElementException
import time browser=webdriver.Chrome() # 实例化一个Chrome
try:
browser.get('https://www.baidu.com/') # 百度======================================================================= # # 例子测试
# input = browser.find_element_by_id('kw') # 查找对应节点
# input.send_keys('python')
# input.send_keys(Keys.ENTER)
# wait = WebDriverWait(browser, 10)
# wait.until(EC.presence_of_element_located((By.ID, 'content_left')))
# print(browser.current_url) #当前页面url
# print(browser.get_cookies()) # 当前页cookies
# print(browser.page_source) # 当前页source html # 查找节点的方法
# input_first=browser.find_element_by_id('kw')
# input_second = browser.find_element_by_css_selector('#kw')
# input_third = browser.find_element_by_xpath('//*[@id="kw"]')
# print(input_third,input_second,input_third) # browser.get('https://www.taobao.com') # 淘宝======================================================================= # 多个节点
# # lis=browser.find_elements_by_css_selector('.service-bd li') # 主要是将element换成elements
# lis=browser.find_elements(By.CSS_SELECTOR,'.service li') # 和上面一样的
# print(lis) # 节点交互
# input=browser.find_element_by_id('q')
# input.send_keys('iphone') # 输入文字
# time.sleep(5)
# input.clear() # 清空文字
# input.send_keys('ipad')
# button=browser.find_element_by_class_name('btn-search')
# button.click() #按钮点击 # 选项卡管理
browser.execute_script('window.open()') # 打开一个选项啦
time.sleep(3)
print(browser.window_handles)
browser.switch_to.window(browser.window_handles[1]) # 跳转到第二个选项卡
browser.get('https://www.taobao.com') # 第二个选项卡访问淘宝
time.sleep(3)
browser.switch_to.window(browser.window_handles[0]) # 跳转回第一个选项卡
browser.get('https://zhihu.com/explore') # 第一个选项卡访问知乎发现页 ,这样关闭的时候只会关闭第一个选项卡 # # 前进 后退
# browser.get('https://www.baidu.com/')
# browser.get('https://www.zhihu.com/explore')
# browser.back() # 后退
# time.sleep(3)
# browser.forward()
# time.sleep(3) # 延时等待——显示等待
# wait=WebDriverWait(browser,10) # 规定时间加载出来返回节点,没查找出来抛出异常
# input=wait.until(EC.presence_of_element_located((By.ID,'q')))
# button=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'.btn-search')))
# print(input,button) # browser.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable') # 菜鸟教程======================== # # 动作链
# browser.switch_to.frame('iframeResult') # 切换iframe
# source=browser.find_element_by_css_selector('#draggable')
# target=browser.find_element_by_css_selector('#droppable')
# actions=ActionChains(browser) # 创建一个动作链对象
# actions.drag_and_drop(source,target) # 调用actions的拖拽方法
# actions.perform() # 执行方法 # # 切换Frame
# browser.switch_to.frame('iframeResult')
# try:
# logo=browser.find_element_by_class_name('logo')
# except NoSuchElementException:
# print('No Logo')
# browser.switch_to.parent_frame()
# logo=browser.find_element_by_class_name('logo') # 切换回父级frame
# print(logo)
# print(logo.text) # browser.get('https://zhihu.com/explore') # 知乎 发现页============================================================== # # 执行JavaScript
# browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
# time.sleep(3)
# browser.execute_script('alert("To Bootom!")')
# time.sleep(3)
# browser.switch_to.alert.accept() # # 获取节点信息
# logo=browser.find_element_by_id('Popover1-toggle')
# print(logo)
# print(logo.get_attribute('class')) # 获取属性
# input=browser.find_element_by_class_name('ExploreSpecialCard-title')
# print(input.text) # 获取文本
# print(input.id) # 获取id
# print(input.location) # 获取location
# print(input.tag_name) # 获取tag_name
# print(input.size) # 获取大小 # # Cookies
# print(browser.get_cookies())
# browser.add_cookie({'name':'name','domain':'www.zhihu.com','value':'germey'}) # 添加一个cookie
# print(browser.get_cookies())
# browser.delete_all_cookies() # 删除所有的cookies
# print(browser.get_cookies()) # 延时等待-隐式等待
# browser.implicitly_wait(10) #在找不到节点的时候等待10s之后抛出异常
# input=browser.find_element_by_class_name('zu-top-add-question') # 这个节点不存在
# print(input) finally:
browser.close()
Selenium 自动化测试工具的更多相关文章
- selenium自动化测试工具模拟登陆爬取当当网top500畅销书单
selenium自动化测试工具可谓是爬虫的利器,基本动态加载的网页都能抓取,当然随着大型网站的更新,也出现针对selenium的反爬,有些网站可以识别你是否用的是selenium访问,然后对你加以限制 ...
- selenium自动化测试学习(一)
在学习selenium自动化测试前,我们需要先了解一点自动化测试的相关知识. (一)什么是自动化测试 (二)为什么要做自动化测试 (三)自动化测试优缺点 (1)什么是自动化测试 自动化测试是把以人为驱 ...
- 开源Web自动化测试工具Selenium IDE
Selenium IDE(也有简写SIDE的)是一款开源的Web自动化测试工具,它实现了测试用例的录制与回放. Selenium IDE目前版本为 3.6 系列,支持跨浏览器运行,所以IDE的UI从原 ...
- 杂项-自动化测试工具:Selenium(浏览器自动化测试框架)
ylbtech-杂项-自动化测试工具:Selenium(浏览器自动化测试框架) Selenium 是一个用于Web 应用程序测试的工具.Selenium 测试直接运行在浏览器中,就像真正的用户在操作一 ...
- 【tips】自动化测试工具 - selenium和phantomJS
### 目录清单 selenium和phantomjs概述 selenium常用API 案例操作:模拟登陆csdn 1. selenium和phantomJS是什么东西 selenium是一套web网 ...
- python网络爬虫之自动化测试工具selenium[二]
目录 前言 一.获取今日头条的评论信息(request请求获取json) 1.分析数据 2.获取数据 二.获取今日头条的评论信息(selenium请求获取) 1.分析数据 2.获取数据 房源案例(仅供 ...
- Selenium浏览器自动化测试工具
目录 Selenium浏览器自动化测试工具 Selenium模块在爬虫中的使用 Python简单使用Selenium Selenium的基本操作 Selenium爬取动态加载的数据 Selenium动 ...
- Web应用程序自动化测试工具Selenium的主要功能有哪些?
Selenium是一个用于Web应用程序测试的工具.是一个开源的Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium可 ...
- python自动化测试工具selenium使用指南
概述 selenium是网页应用中最流行的自动化测试工具,可以用来做自动化测试或者浏览器爬虫等.官网地址为:https://www.selenium.dev/.相对于另外一款web自动化测试工具QTP ...
- 自动化测试工具selenium webdirver
看视频学到的,自动化测试工具,可以模拟用户操作,包括输入,点击等操作 新建新文件夹 在命令行执行npm init ,一路回车,把项目先初始化 安装 npm install selenium-web ...
随机推荐
- mysql 5.7密码修改
官网下载安装包:https://dev.mysql.com/downloads/mysql/ 一.停止mysqld服务 二.编辑配置文件 有的Linux版本是/etc/my.cnf 有的Linux版本 ...
- Zabbix监控可视化
一.监控系统的架构体系 大家都知道,监控系统由三大部分组成,一,监控数据采集:二,监控告警分析:三,监控数据报表.可视化.在市面上常见的开源监控软件,或者商业监控软件中,均有很好的实践和体现. 监控系 ...
- 一文讲清楚static关键字
static能修饰的地方 静态变量 静态变量: 又称为类变量,也就是说这个变量属于类的,类所有的实例都共享静态变量,可以直接通过类名来访问它:静态变量在内存中只存在一份. 实例变量: 每创建一个实例就 ...
- 免费、开源、详细完整的unity游戏、游戏源码、教程:人工智能分析和处理对话的美好三维世界(定期更新)
这份unity游戏.游戏源码.教程:完全免费,完全开源,完整详细,通俗易懂,适合初学者入门,定期更新. 我不想和任何人说话,任何人不要跟我说话,不要打扰我,我要安安静静的写.我解释一下原因: 俗话说& ...
- pipx 使用
pipx 用于在孤立环境中安装和运行 Python 应用程序.类似 Node.js 中的 npx. 安装 macOS: brew install pipx pipx ensurepath Ubuntu ...
- idea 的Tomcat 的简单配置
不限速网盘下载: https://kohler.lanzouv.com/iSSfc0akw3vc 官网下载: https://tomcat.apache.org/download-80.cgi 正常解 ...
- 图穷匕见-所有反DDD模式都是垃圾
本文书接上回<主观与客观,破除DDD凭经验魔咒>,关注公众号(老肖想当外语大佬)获取信息: 最新文章更新: DDD框架源码(.NET.Java双平台): 加群畅聊,建模分析.技术实现交流: ...
- 搭建高效攻防靶场vulfocus与Docker仓库管理实战:从听说到入门系列
搭建高效攻防靶场vulfocus与Docker仓库管理实战:从听说到入门系列 vulfocus 简介 vulfocus,作为一款前沿的漏洞集成平台,它巧妙地将多种最新的CVE漏洞环境封装于Docker ...
- MySQL linux下安装,配置,免密登录与基本认识
目录 MySQL卸载 环境 查看是否已安装MySQL 卸载mysql服务 查看是否卸载干净 MySQL安装 查看linux版本 选择MySQL版本 获取mysql官方yum源 rpm安装mysql官方 ...
- JS数据类型&类型转换
基本数据类型 JS中的数据类型由原始值和对象共同组成,原始值一共有七种原始值: 数值(Number) 大整数(BigInt) 字符串(String) 布尔值(Boolean) 空值(Null) 未定义 ...