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 ...
随机推荐
- Oracle数据库安装与还原
安装Oracle 11g数据库 安装数据库参考这位大佬的文章:(135条消息) Oracle 11g版本下载及安装超详细教程图解_oracle11g下载_田夜的博客-CSDN博客 非常详细 利用dmp ...
- 巴特沃斯LPF设计(硬件电路实现)
高阶 (2n) VSVC单位增益巴特沃斯低通滤波器设计,可分解为 n 个二阶低通,通过对这多个二阶低通的组合优化,可提高滤波器的低通特性和稳定性. 串联的传递函数是各个二阶滤波器传递函数的乘积:\({ ...
- pikachu靶场 暴力破解(验证码绕过 on server)
先随便输入账号和密码.验证码,来判断前端是否对验证码进行判断对错 先随便输入账号和密码不输入验证码,来判断前端是否允许验证码留空 先随便输入账号和密码,输入正确的验证码,来判断账号和密码是否存在 1. ...
- Android RecyclerView 获取当前滚动到的Item项
背景:RecyclerView 左右滑动时,需要获取当前显示在页面上的选项卡 步骤: 1. RecyclerView 添加addOnScrollListener,回调中可以直接获取对应Item I ...
- 阿里云 SLS 模糊查询日志
查询包含test前缀的词 1. 访问 https://sls.console.aliyun.com/lognext/profile 2. 在Project列表中找到对应的sls日志Project 3. ...
- NumPy从入门到放弃
看前建议: 本文以jupyter notebook为编辑器进行示例,建议有一定python基础后再进行学习. python的安装:https://www.cnblogs.com/scfssq/p/17 ...
- 【计算机视觉前沿研究 热点 顶会】ECCV 2024中目标检测有关的论文
整值训练和尖峰驱动推理尖峰神经网络用于高性能和节能的目标检测 与人工神经网络(ANN)相比,脑激励的脉冲神经网络(SNN)具有生物合理性和低功耗的优势.由于 SNN 的性能较差,目前的应用仅限于简单的 ...
- Coursera Self-driving1, introduction
有哪些 Sensors? 摄像头和激光雷达,毫米波雷达等 sensor 分类: exteroceptive (surrounding), 有 camera(Resolution, FOV, Dynam ...
- RGB、HSV和HSL颜色空间
这个文章写的很清楚了 https://zhuanlan.zhihu.com/p/67930839
- Qml 实现水波进度动画条
[写在前面] 最近看到一个非常有趣的动画效果:水波进度动画. 学习了一下实现思路,觉得很有意思. 不过原版是 HTML + CSS,我这里用的是 Qml,有一些小技巧,分享给大家~ [正文开始] 老样 ...