python+selenium实现自动化操作入门:
1.先简单介绍一下selenium:
Python Selenium是Selenium WebDriver的Python语言封装,为Python开发者提供了一个方便易用的自动化测试库。它支持多种浏览器(如Chrome、Firefox、Edge等)以及多个操作系统,可以模拟用户在浏览器中的各种行为,包括打开网页、查找元素、输入文本、点击链接、提交表单、上传文件等。
这里我们使用Chrome浏览器来实现自动化操作
2.我们先进行一些准备工作:
首先需要有一个谷歌浏览器,然后python也需要有,在python的终端使用命令:pip install selenium ,安装selenium框架
之后我们需要下载对应的浏览器驱动,由于这次我们使用的是谷歌浏览器,所以就下载谷歌浏览器的驱动:
谷歌浏览器驱动下载:https://registry.npmmirror.com/binary.html?path=chromedriver/
IE浏览器驱动下载: http://selenium-release.storage.googleapis.com/index.html
Firefox浏览器驱动下载: https://github.com/mozilla/geckodriver/releases
Eage浏览器驱动下载:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
先查看自己的谷歌浏览器版本,这个怎么查看版本就不多做介绍了,然后在上面给的链接中找到离你最近的浏览器的版本下载就行,不需要完全一样。下载完成之后的驱动需要放在你安装的python路径下:
3.之后我们就可以打开pycharm进行后面的操作了,我们先进行一个业务示例,就比如现在需要你进行使用百度搜索周杰伦,搜索完成之后,关闭浏览器,这里我们先不做是否搜索成功的校验。
(1)首先要进行的就是导入selenium中的webdriver模块:from selenium import webdriver
(2)之后我们用该模块中的方法,打开谷歌浏览器,将他定义为一个函数:driver=webdriver.Chrome()
(3)加载网页使用get方法:driver.get('http://www.baidu.com')
(4)之后我们就需要用到selenium中的定位元素的方法,我们先自己打开一个百度网页
使用F12开发者工具定位到百度的输入框元素,之后在该元素上复制路径XPATH:
然后在python中使用selenium中的By方法,代码如下:
send_keys方法:输入值
driver.find_element(By.XPATH,'//*[@id="kw"]').send_keys('周杰伦')
之后我们还需要再进行点击搜索操作,方法跟上面的就是一样的定位元素,然后后面需要通道click方法,代码如下:
driver.find_element(By.XPATH,'///*[@id="su"]').click()
之后使用close方法关闭浏览器,完整代码如下:
# 导入selenium模块中的webdriver
from selenium import webdriver
import time
driver=webdriver.Chrome()
from selenium.webdriver.common.by import By # 导入by模块
# 加载网页
driver.get('http://www.baidu.com')
# 强制等待三秒
time.sleep(3)
# 定位元素的第一种方法 id 对元素进行操作第一个 输入 send_keys()
# 第一种方法
# driver.find_element_by_id('kw').send_keys('lol')
# 第二种方法 需要导入by方法 from selenium.webdriver.common.by import By
driver.find_element(By.XPATH,'//*[@id="kw"]').send_keys('周杰伦')
time.sleep(3)
driver.find_element(By.XPATH,'//*[@id="su"]').click()
# 窗口最大化
driver.maximize_window()
# 关闭浏览器 防止多次启动浏览器未关闭导致缓存增多 close是关闭当前页面的浏览器 quit是关闭所有关联的窗口,一般使用quit
# driver.close()
driver.quit()
报错解决:
如果出现这个报错,说明你的浏览器版本和你下载的驱动版本不兼容,需要重新下载。如果在上面地址中找不到对应的谷歌版本驱动,点进去此链接:https://googlechromelabs.github.io/chrome-for-testing/ 这个里面有最新的测试版驱动,但是不推荐把谷歌更新到最新版本的,因为驱动更新很慢。