准备工作

查询浏览器版本 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简单应用的更多相关文章

  1. python+selenium 简单尝试

    前言 selenium是一种自动化测试工具,简单来说浏览器会根据写好的测试脚本自动做一些操作. 关于自动化测试,一开始接触的是splinter,但是安装的时候发现它是基于selenium的,于是打算直 ...

  2. selenium+python自动化98--文件下载弹窗处理(PyKeyboard)

    前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!) 有时候我们并不是非要去定位到这个按钮再去点击, ...

  3. selenium+python自动化79-文件下载(SendKeys)

    前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作. SendKeys库是专业的处理键盘事件的,所以这里需要用S ...

  4. selenium+python自动化之环境安装

    一.Python安装 1.操作系统:win7 64位系统 2.下载Python安装包,选择2.7版本和3.6版本都可以(最好安装2.7版本稳定)官网下载地址:https://www.python.or ...

  5. 【python-excel】Selenium+python自动化之读取Excel数据(xlrd)

    Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ·········· ...

  6. Selenium2+python自动化7-xpath定位

    前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ...

  7. [Python爬虫] Selenium获取百度百科旅游景点的InfoBox消息盒

    前面我讲述过如何通过BeautifulSoup获取维基百科的消息盒,同样可以通过Spider获取网站内容,最近学习了Selenium+Phantomjs后,准备利用它们获取百度百科的旅游景点消息盒(I ...

  8. Selenium2+python自动化13-Alert

    不是所有的弹出框都叫alert,在使用alert方法前,先要识别出它到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决.alert\confirm\prompt弹出框 ...

  9. 基于python的Selenium使用小结

    之前介绍过基于Unittest和TestNG自动化测试框架,然而基于Web端的测试的基础框架是需要Selenium做主要支撑的,这里边给大家介绍下Web测试核心之基于Python的Selenium 一 ...

  10. Appium+python自动化8-Appium Python API

    Appium+python自动化8-AppiumPython API   前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts conte ...

随机推荐

  1. USB gadget驱动框架(三)

    gadget驱动框架(三) usb_udc与usb_gadget_driver的绑定 usb_udc与usb_gadget_driver,在注册的时候分别被添加到udc_list和gadget_dri ...

  2. 虚拟dom的优缺点

    虚拟dom 是js模拟的一颗dom树,也是 js 对象 : 虚拟dom 时相对于 真实dom而言的,操作真实 dom 开销太大,降低了性能,所以使用 虚拟 dom 替代真实 dom 完成操作和计算功能 ...

  3. WPF中为Popup和ToolTip使用WindowMaterial特效 win10/win11

    先看效果图: 大致思路是:通过反射获取Popup内部的原生窗口句柄,然后通过前文已经实现的WindowMaterial类来应用窗口特效:对于ToolTip,为了保持其易用性,我使用了附加属性+全局样式 ...

  4. python模拟发送、消费kafka消息

    参考文章: https://zhuanlan.zhihu.com/p/279784873 生产者代码: import traceback from kafka import KafkaProducer ...

  5. RocketMQ Streams拓扑构建与数据处理过程

    本文作者:倪泽,Apache RocketMQ committer.RSQLDB/RocketMQ Streams Maintainer 01 背景 RocketMQ Streams 1.1.0版本已 ...

  6. 在Ubuntu小设备上使用VSCode+SSH开发部署nicegui的Web应用,并设置系统开机自动启动应用

    在一些小的设备上跑Ubuntu系统,需要快速的开发和调整项目的时候,往往使用SSH进行远程的开发测试,这样可以避免传统的打包更新处理,能够快速的在实际环境上测试具体的内容.另外由于系统设备往往需要重启 ...

  7. Redis工具可视化工具Redis Desktop Manager(附安装包)

    前言 redis工具,我相信每个开发都需要,如果每次查都去client执行指令,我怕查完之后,老大就要发版咯.我之前一直用的Redis可视化工具RedisDesktopManager,总觉得差点意思, ...

  8. 30k的测试简历长这样,进来抄作业!

    面试求职: 「面试试题小程序」,内容涵盖 测试基础.Linux操作系统.MySQL数据库.Web功能测试.接口测试.APPium移动端测试.Python知识.Selenium自动化测试相关.性能测试. ...

  9. Rust编程与项目实战-结构体

    <Rust编程与项目实战>(朱文伟,李建英)[摘要 书评 试读]- 京东图书 (jd.com) 在Rust中,结构体(Struct)是一种自定义数据类型,它允许我们将多个相关的值组合在一起 ...

  10. 2024ICPC 武汉邀请赛题解 更新至 8 题

    目录 Preface Problem I. 循环苹果串 Problem K. 派对游戏 Problem B. 无数的我 Problem F. 订制服装 Problem E. 回旋镖 Problem D ...