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 ...
随机推荐
- 圣诞节快乐,教你用shell脚本实现一颗圣诞树。【小酷炫】
前言 圣诞节到了! 一口君在这祝各位粉丝朋友圣诞节快乐! 祝各位考研的同学金榜题名! 祝找工作的朋友offer接到爆! 祝各位老板新年大发财源! 在此一口君特地用shell脚本画了一个圣诞树! 先来看 ...
- Go进程内存占用那些事(二)
0x01 最简单的Go程序 package main import ( "fmt" "time" ) func main() { fmt.Println(&qu ...
- 代码随想录Day22
77. 组合 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合. 你可以按 任何顺序 返回答案. 示例 1: 输入:n = 4, k = 2 输出: [ [2,4], [ ...
- 如何用AI抠图助手进行直播--新手指南
如何用AI抠图助手进行直播 因AI抠图助手目前还没有提供推流直播,所以,可以采用抖音的"手游直播"方式,即抖音开启手游直播后会录制你手机屏幕画面,进行录屏直播:所以我们只要打开AI ...
- 配置 Windows Boot Manager
配置 Windows Boot Manager 通常需要使用 bcdedit 命令,这是一个命令行工具,用于管理 Boot Configuration Data (BCD) 存储.BCD 存储包含了启 ...
- Ubuntu 设置 FTP 服务
安装 VSFTP 服务 sudo apt install vsftpd 检查配置文件 sudo vim /etc/vsftpd.conf 确保以下配置项正确: #禁止匿名访问 anonymous_en ...
- 【VMware VCF】VCF 5.2:配置管理域 vSAN 延伸集群。
VMware vSAN 解决方案中,根据集群的配置类型分为 vSAN 标准集群.vSAN 延伸集群以及双主机集群(延伸集群特例).我们最常见的使用方式应该是 vSAN 标准集群,也就是 vSAN HC ...
- SoftCLT: 时间序列的软对比学习《Soft Contrastive Learning for Time Series》(时间序列、时序分类任务、软对比学习、实例上软赋值距离差异、数据空间非嵌入空间度量相似性)
2024年6月25日,10:11,好几天没看论文了,一直在摸鱼写代码(虽然也没学会多少),今天看一篇师兄推荐的. 论文:Soft Contrastive Learning for Time Serie ...
- [TK] CF1526B I Hate 1111
给定一个数,将它表示成若干个形如 \(11,111,1111\cdots\) 之类的数之和,判断有没有可行解 考虑到一种贪心,即从高位开始依次向下减去每位数字,判断还能不能减动,减不动或者没减完就报告 ...
- Kubernetes Pod(Pod Hook?Pod 健康检查?Pod 资源配置?)(十八)
一.Pod Hook 我们知道 Pod 是 Kubernetes 集群中的最小单元,而 Pod 是由容器组成的,所以在讨论 Pod 的生命周期的时候我们可以先来讨论下容器的生命周期.实际上 Kuber ...