准备工作

查询浏览器版本 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. uart loglevel和pr_debug的区别

    pr_debug 是 Linux 内核中用于打印调试信息的宏,它的行为会根据编译时的配置有所不同.如果定义了 CONFIG_DYNAMIC_DEBUG 配置选项,pr_debug 会扩展为 dynam ...

  2. 2022年8月中国数据库排行榜:openGauss重夺榜眼,PolarDB反超人大金仓

    "烈日杲杲,夺榜愈烈." 2022年8月的 墨天轮中国数据库流行度排行榜 火热出炉,8月排行榜共有236个数据库参与排名.本月榜单前十名的变化可以用"两反超"来 ...

  3. 09 什么是注意力机制(Attention )

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...

  4. 工作中的技术总结_Thymeleaf插件_关于th:if 、th:with、th:replace和th:fragment的一些事 _20210825

    工作中的技术总结_Thymeleaf _20210825 1.值取为空的情况:不能使用 th:if 进行条件渲染(因为是伪条件渲染,不管怎样元素都是先渲染到DOM再决定是否显示:个人这么认为不一定准确 ...

  5. JS Parser Combinator (解析器组合子)

    前言 前些天偶然看到以前写的一份代码,注意有一段尘封的代码,被我遗忘了.这段代码是一个简单的解析器,当时是为了解析日志而做的.最初解析日志时,我只是简单的正则加上分割,写着写着,我想,能不能用一个简单 ...

  6. python语言中三个奇妙的返回值

    从公众号看到的,记录下 d = {} d[5] = "test1" d[5.0] = "test2" d["5"] = "test ...

  7. 万星开源项目:System Design Primer - 学习系统设计的必备指南

    GitHub 链接:https://github.com/donnemartin/system-design-primer 什么是 System Design Primer? System Desig ...

  8. js实现浏览器后退页面刷新

    最近在开发中遇到一个问题: 在一个列表页面,点击进入详情,详情页面对其状态操作,其详情页面有做修改,然后点击浏览器后退,返回到列表页,在列表页面状态还是操作之前的,为解决状态统一需要手动刷新改列表页. ...

  9. Flink window

    窗口计算 我们经常需要在一个时间窗口维度上对数据进行聚合,窗口是流处理应用中经常需要解决的问题.Flink的窗口算子为我们提供了方便易用的API,我们可以将数据流切分成一个个窗口,对窗口内的数据进行处 ...

  10. [转载] Ubuntu上Firefox字体太小--高分屏背锅——高清分辨率屏幕下浏览器设置

    版权声明:本文为CSDN博主「mythinker2」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/myth ...