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 自动化测试工具的更多相关文章

  1. selenium自动化测试工具模拟登陆爬取当当网top500畅销书单

    selenium自动化测试工具可谓是爬虫的利器,基本动态加载的网页都能抓取,当然随着大型网站的更新,也出现针对selenium的反爬,有些网站可以识别你是否用的是selenium访问,然后对你加以限制 ...

  2. selenium自动化测试学习(一)

    在学习selenium自动化测试前,我们需要先了解一点自动化测试的相关知识. (一)什么是自动化测试 (二)为什么要做自动化测试 (三)自动化测试优缺点 (1)什么是自动化测试 自动化测试是把以人为驱 ...

  3. 开源Web自动化测试工具Selenium IDE

    Selenium IDE(也有简写SIDE的)是一款开源的Web自动化测试工具,它实现了测试用例的录制与回放. Selenium IDE目前版本为 3.6 系列,支持跨浏览器运行,所以IDE的UI从原 ...

  4. 杂项-自动化测试工具:Selenium(浏览器自动化测试框架)

    ylbtech-杂项-自动化测试工具:Selenium(浏览器自动化测试框架) Selenium 是一个用于Web 应用程序测试的工具.Selenium 测试直接运行在浏览器中,就像真正的用户在操作一 ...

  5. 【tips】自动化测试工具 - selenium和phantomJS

    ### 目录清单 selenium和phantomjs概述 selenium常用API 案例操作:模拟登陆csdn 1. selenium和phantomJS是什么东西 selenium是一套web网 ...

  6. python网络爬虫之自动化测试工具selenium[二]

    目录 前言 一.获取今日头条的评论信息(request请求获取json) 1.分析数据 2.获取数据 二.获取今日头条的评论信息(selenium请求获取) 1.分析数据 2.获取数据 房源案例(仅供 ...

  7. Selenium浏览器自动化测试工具

    目录 Selenium浏览器自动化测试工具 Selenium模块在爬虫中的使用 Python简单使用Selenium Selenium的基本操作 Selenium爬取动态加载的数据 Selenium动 ...

  8. Web应用程序自动化测试工具Selenium的主要功能有哪些?

    Selenium是一个用于Web应用程序测试的工具.是一个开源的Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium可 ...

  9. python自动化测试工具selenium使用指南

    概述 selenium是网页应用中最流行的自动化测试工具,可以用来做自动化测试或者浏览器爬虫等.官网地址为:https://www.selenium.dev/.相对于另外一款web自动化测试工具QTP ...

  10. 自动化测试工具selenium webdirver

    看视频学到的,自动化测试工具,可以模拟用户操作,包括输入,点击等操作 新建新文件夹 在命令行执行npm init  ,一路回车,把项目先初始化 安装  npm install selenium-web ...

随机推荐

  1. 圣诞节快乐,教你用shell脚本实现一颗圣诞树。【小酷炫】

    前言 圣诞节到了! 一口君在这祝各位粉丝朋友圣诞节快乐! 祝各位考研的同学金榜题名! 祝找工作的朋友offer接到爆! 祝各位老板新年大发财源! 在此一口君特地用shell脚本画了一个圣诞树! 先来看 ...

  2. Go进程内存占用那些事(二)

    0x01 最简单的Go程序 package main import ( "fmt" "time" ) func main() { fmt.Println(&qu ...

  3. 代码随想录Day22

    77. 组合 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合. 你可以按 任何顺序 返回答案. 示例 1: 输入:n = 4, k = 2 输出: [ [2,4], [ ...

  4. 如何用AI抠图助手进行直播--新手指南

    如何用AI抠图助手进行直播 因AI抠图助手目前还没有提供推流直播,所以,可以采用抖音的"手游直播"方式,即抖音开启手游直播后会录制你手机屏幕画面,进行录屏直播:所以我们只要打开AI ...

  5. 配置 Windows Boot Manager

    配置 Windows Boot Manager 通常需要使用 bcdedit 命令,这是一个命令行工具,用于管理 Boot Configuration Data (BCD) 存储.BCD 存储包含了启 ...

  6. Ubuntu 设置 FTP 服务

    安装 VSFTP 服务 sudo apt install vsftpd 检查配置文件 sudo vim /etc/vsftpd.conf 确保以下配置项正确: #禁止匿名访问 anonymous_en ...

  7. 【VMware VCF】VCF 5.2:配置管理域 vSAN 延伸集群。

    VMware vSAN 解决方案中,根据集群的配置类型分为 vSAN 标准集群.vSAN 延伸集群以及双主机集群(延伸集群特例).我们最常见的使用方式应该是 vSAN 标准集群,也就是 vSAN HC ...

  8. SoftCLT: 时间序列的软对比学习《Soft Contrastive Learning for Time Series》(时间序列、时序分类任务、软对比学习、实例上软赋值距离差异、数据空间非嵌入空间度量相似性)

    2024年6月25日,10:11,好几天没看论文了,一直在摸鱼写代码(虽然也没学会多少),今天看一篇师兄推荐的. 论文:Soft Contrastive Learning for Time Serie ...

  9. [TK] CF1526B I Hate 1111

    给定一个数,将它表示成若干个形如 \(11,111,1111\cdots\) 之类的数之和,判断有没有可行解 考虑到一种贪心,即从高位开始依次向下减去每位数字,判断还能不能减动,减不动或者没减完就报告 ...

  10. Kubernetes Pod(Pod Hook?Pod 健康检查?Pod 资源配置?)(十八)

    一.Pod Hook 我们知道 Pod 是 Kubernetes 集群中的最小单元,而 Pod 是由容器组成的,所以在讨论 Pod 的生命周期的时候我们可以先来讨论下容器的生命周期.实际上 Kuber ...