【Python自动化】selenium简单应用
准备工作
查询浏览器版本 chrome://version/
下载驱动 https://chromedriver.storage.googleapis.com/index.html
下载的驱动版本要和浏览器版本一致
chrome_driver = r'driver\chromedriver.exe' # chromedriver的文件位置
driver = webdriver.Chrome(executable_path=chrome_driver)
获取网页
driver.get(url)
获取元素
- 通过元素名获取元素
driver.find_element_by_name(STR_NAME) - 通过类名获取元素
driver.find_element_by_class_name(STR_NAME) - 通过ID获取元素
driver.find_element_by_id(STR_NAME)
这几个是最常用的的,还有其他的,就不在此列举了。
元素操作
点击事件
方式1
获取元素后直接执行点击事件.click()
例如
driver.find_element_by_id(STR_NAME).click()
方式2
driver.execute_script("arguments[0].click();", 元素)
例如
a = driver.find_element_by_id(STR_NAME) # 发送验证码按钮
driver.execute_script("arguments[0].click();", a) # 点击按钮
键入文本
.send_keys(欲键入文本)
例如
elem = driver.find_element_by_name(STR_NAME)
elem.send_keys(STR)
一些无用的例子,仅供学习
from selenium import webdriver
import time
from selenium.webdriver.support.wait import WebDriverWait
def sentCode(tel):
# 查询浏览器版本 chrome://version/
# 下载驱动 https://chromedriver.storage.googleapis.com/index.html
# 下载的驱动版本要和浏览器版本一致
chrome_driver = r'driver\chromedriver.exe' # chromedriver的文件位置
driver = webdriver.Chrome(executable_path=chrome_driver)
# 阿里支付宝注册 | 找不到元素
# driver.get('https://memberprod.alipay.com/account/reg/index.htm')
# a = driver.find_element_by_class_name('J-agree-button')
# a.click()
# 高途课堂 | 滑块验证
# driver.get('https://www.gaotu.cn/')
# a = driver.find_element_by_class_name('login') # 找到登陆按钮
# driver.execute_script("arguments[0].click();",a) # 点击登录
# elem = driver.find_element_by_name("sms") # 获取手机号输入框
# elem.send_keys(tel) # 填写手机号
# a = driver.find_element_by_class_name('passport-code-btn') # 找到登陆按钮
# driver.execute_script("arguments[0].click();", a) # 点击登录
# 美团 成功
# driver.get(
# 'https://passport.meituan.com/account/unitivelogin?service=www&continue=https%3A%2F%2Fwww.meituan.com%2Faccount%2Fsettoken%3Fcontinue%3Dhttps%253A%252F%252Fcq.meituan.com%252F&_nsmobilelogin=true')
# elem = driver.find_element_by_name("mobile") # 获取手机号输入框
# elem.send_keys(tel) # 填写手机号
# time.sleep(1)
# a = driver.find_element_by_id('J-verify-btn') # 发送验证码按钮
# driver.execute_script("arguments[0].click();", a) # 点击按钮
# print('美团 - 发送')
# # 58同城 | 填写电话的输入框无法交互
# driver.get('https://passport.58.com/login/?path=https%3A%2F%2Fcq.58.com%2F%3Futm_source%3Dmarket%26spm%3Du-2d2yxv86y3v43nkddh1.BDPCPZ_BT&source=58-homepage-pc&PGTID=0d100000-0002-5491-9403-de17aabb4e1c&ClickID=2')
# a=driver.find_element_by_class_name('phonenum_item') # 找到登陆按钮
# driver.execute_script("arguments[0].click();", a) # 点击按钮
# elem = driver.find_element_by_id("mask_body_item_phonenum")
# driver.find_element_by_id("mask_body_item_phonenum").click()
# elem .send_keys(tel)
# a = driver.find_element_by_id('mask_body_item_getcode') # 发送验证码按钮
# driver.execute_script("arguments[0].click();", a) # 点击按钮
# print('58同城 - 发送')
if __name__ == '__main__':
sentCode('电话号码')
【Python自动化】selenium简单应用的更多相关文章
- python+selenium 简单尝试
前言 selenium是一种自动化测试工具,简单来说浏览器会根据写好的测试脚本自动做一些操作. 关于自动化测试,一开始接触的是splinter,但是安装的时候发现它是基于selenium的,于是打算直 ...
- selenium+python自动化98--文件下载弹窗处理(PyKeyboard)
前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!) 有时候我们并不是非要去定位到这个按钮再去点击, ...
- selenium+python自动化79-文件下载(SendKeys)
前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作. SendKeys库是专业的处理键盘事件的,所以这里需要用S ...
- selenium+python自动化之环境安装
一.Python安装 1.操作系统:win7 64位系统 2.下载Python安装包,选择2.7版本和3.6版本都可以(最好安装2.7版本稳定)官网下载地址:https://www.python.or ...
- 【python-excel】Selenium+python自动化之读取Excel数据(xlrd)
Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ·········· ...
- Selenium2+python自动化7-xpath定位
前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ...
- [Python爬虫] Selenium获取百度百科旅游景点的InfoBox消息盒
前面我讲述过如何通过BeautifulSoup获取维基百科的消息盒,同样可以通过Spider获取网站内容,最近学习了Selenium+Phantomjs后,准备利用它们获取百度百科的旅游景点消息盒(I ...
- Selenium2+python自动化13-Alert
不是所有的弹出框都叫alert,在使用alert方法前,先要识别出它到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决.alert\confirm\prompt弹出框 ...
- 基于python的Selenium使用小结
之前介绍过基于Unittest和TestNG自动化测试框架,然而基于Web端的测试的基础框架是需要Selenium做主要支撑的,这里边给大家介绍下Web测试核心之基于Python的Selenium 一 ...
- Appium+python自动化8-Appium Python API
Appium+python自动化8-AppiumPython API 前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts conte ...
随机推荐
- 使用nnUNet跑BraTS脑肿瘤分割预测TC和ET非常低的原因。
使用nnUNet跑BraTS脑肿瘤分割预测TC和ET非常低,原来是预测的时候,使用了预处理后的标签.原本标签是:2:WT, 1:TC, 4:ET.但是预处理之后变为:1:WT, 2:TC, 3:ET. ...
- 好文分享 | 记一次Oracle12c数据库SQL短暂缓慢问题分析
本文为墨天轮社区作者 张sir 原创作品,记录了日常运维Oracle数据库过程中遇到的一个慢SQL问题的解决.优化过程,文章内容全面具体.分析到位,且含有经验总结,分享给各位. 问题现象 这次出问题的 ...
- jmeter-模拟带参数的请求与上传文件
请求参数照着前端请求的样式填即可: header带content: header不带content_type: 总结:上传文件时headers里面不能带content_type参数
- 小程序框架开发笔记-wepy
WePY 一.前置 本地使用版本V1.7.3最新版本V2.x 二.使用 export class App extends wepy.app {} 小程序入口,App基类 wepy ...
- python处理大量数据excel表格中间格式神器pickle.pkl文件操作说明
读取写入千万级别的excel文件费时费力,调试起来比较慢,面对这个问题,第一步可以先无脑全部转换成pkl文件,这样几乎和内存操作一样的速度. 例如: t=pd.read_excel("12月 ...
- 2个月搞定计算机二级C语言——真题(6)解析
1. 前言 本篇我们讲解2个月搞定计算机二级C语言--真题 6 2. 程序填空题 2.1 题目要求 2.2 提供的代码 #include <stdio.h> unsigned long f ...
- CF980-Div2-D
CF980-Div2-D 题意 从 \(1\) 开始决策,若选当前数,则累计贡献 \(a[i]\) 并跳到 \(j\) 位置,\(j\) 是 \(\lt i\) 且没有决策过(包括选了和没选)的最大位 ...
- golang中defer的作用
defer是golang里面一个很有用的语法,但很多人可能都不太清楚它具体应该怎么用.这里记录一下自己学习到的内容. 应用场景 defer一般用于资源释放,当一个资源申请成功后,经常会在后面写一个de ...
- 10-3 定制操作lambda
目录 10.3.1 向算法传递函数 谓词 排序算法 10.3.2 lambda表达式 引入 介绍lambda 向lambda传递参数 使用捕获列表 调用find_if 使用for_each 完整的bi ...
- JESD79-5C_v1.30-2024 JEDEC DDR5 SOLID STATE TECHNOLOGY ASSOCIATION 最新内存技术规范
JESD79-5C_v1.30-2024 JEDEC DDR5 SOLID STATE TECHNOLOGY ASSOCIATION 最新DDR5内存技术规范 JEDEC 技术协会公布新 DDR5 ...