【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 ...
随机推荐
- CentOS7 安装配置笔记 v2
1.通过镜像安装 CentOS72.安装 wget 下载工具3.修改镜像地址4.安装 nano 文本编辑工具5.安装 dotnet core6.安装vsftpd7.设置 firewalld8.为 do ...
- 推荐一款轻量级 eBPF 前端工具 ply
1 Overview ply 是 eBPF 的 front-end 前端工具之一,专为 embedded Linux systems 开发,采用 C 语言编写,只需 libc 和内核支持 BPF 就可 ...
- 如何解决使用 router.push 跳转路由第二次之后页面就不会刷新了
router.push({ name:"monitor", query:{ deviceid:"1676156672197922816", // 设备 ID i ...
- signalR的身份认证
- 云原生周刊:Grafana Beyla 发布 | 2023.9.18
开源项目推荐 Komiser Komiser 是一个与云无关的开源资源管理器.它与多个云提供商(包括 AWS.Azure.Civo.Digital Ocean.OCI.Linode.腾讯和 Scale ...
- 云原生爱好者周刊:Cilium 放大招,发布服务网格 Beta 版
云原生一周动态要闻: Cilium 推出服务网格测试计划 Knative 已申请成为 CNCF 的孵化项目 Kubernetes v1.23 即将发布 Lens 5.3 发布 开源项目推荐 文章推荐 ...
- KubeSphere 社区双周报 | KubeKey v3.0.0 发布 | 2022-11-10
KubeSphere 从诞生的第一天起便秉持着开源.开放的理念,并且以社区的方式成长,如今 KubeSphere 已经成为全球最受欢迎的开源容器平台之一.这些都离不开社区小伙伴的共同努力,你们为 Ku ...
- java CAS及各种锁
CAS CAS 缺点:循环会耗时:一次性只能保持一个共享变量的原子性:ABA问题 package juc.cas; import java.util.concurrent.atomic.AtomicI ...
- 蚂蚁图团队GraphRAG支持社区摘要——Token相比微软直降50%
今年5月份,我们在DB-GPT v0.5.6版本发布了蚂蚁首个开源GraphRAG框架,支持了多种知识库索引底座,并在文章<Vector | Graph:蚂蚁首个开源GraphRAG框架设计解读 ...
- Min-25 筛小记
Min-25 筛 参考 \(\text{OI-Wiki}\) 和 2018 集训队论文 朱震霆<一些特殊的数论函数求和问题>. \(\text{Min-25}\) 的本质是埃式筛和数论分块 ...