当前位置: 首页 > news >正文

Selenium手动和自动两种方式启动Chrome驱动

1. 自动启动chrome驱动(已经安装了Selenium库和Chrome驱动)

要使用Selenium自动跟随自带的Chrome驱动,你需要首先确保你已经安装了Selenium库和Chrome驱动。然后,你可以按照以下步骤进行操作:

  1. 导入必要的库:
from selenium import webdriver
  1. 创建一个Chrome WebDriver实例:
driver = webdriver.Chrome()

这将自动根据系统中安装的Chrome浏览器版本使用正确的驱动程序。

  1. 使用WebDriver执行自动化操作,例如访问网页、点击元素等:
driver.get("https://www.example.com")  # 访问一个网页示例# 执行其他自动化操作...

通过调用get()方法,你可以让WebDriver打开指定的URL,并加载对应的页面。

  1. 最后,关闭WebDriver:
driver.quit()

这将关闭浏览器并结束WebDriver的进程。

下面是一个完整示例代码:

from selenium import webdriver# 创建Chrome WebDriver实例
driver = webdriver.Chrome()# 访问一个网页示例
driver.get("https://www.example.com")# 执行其他自动化操作...# 关闭WebDriver
driver.quit()

你可以根据自己的需求,在执行自动化操作之前和之后,添加相应的代码来修改或扩展操作。

请注意,为了正常运行,你需要安装Selenium库和与你的Chrome浏览器版本匹配的Chrome驱动程序。确保将Chrome驱动程序所在的目录添加到系统的环境变量中,或者在代码中指定驱动程序的路径。

2. 手动启动chrome驱动

如果你想手动指定使用浏览器的驱动程序,可以按照以下步骤操作:

  1. 首先,下载适用于你的Chrome浏览器版本的Chrome驱动程序。你可以从以下链接下载对应的驱动程序:https://sites.google.com/a/chromium.org/chromedriver/downloads

  2. 本地镜像下载驱动地址:https://registry.npmmirror.com/binary.html?path=chromedriver/

  3. 将下载的驱动程序解压缩到一个你希望存放驱动程序的目录中。

  4. 在代码中指定使用特定的驱动程序路径,例如:

from selenium import webdriver# 指定Chrome驱动程序的路径
driver_path = "path/to/chromedriver"# 创建Chrome WebDriver实例,并指定驱动程序路径
driver = webdriver.Chrome(executable_path=driver_path)# 执行自动化操作...

path/to/chromedriver 替换为你实际的驱动程序路径。

  1. 执行其他自动化操作,如访问网页、点击元素等:
driver.get("https://www.example.com")  # 访问一个网页示例# 执行其他自动化操作...
  1. 最后,关闭WebDriver:
driver.quit()

这样,你就可以手动指定使用浏览器的驱动程序来进行自动化操作了。

请确保下载的驱动程序与你的Chrome浏览器版本匹配,以确保正常运行。

3. 实例

“”"
下载qq到放到指定文件夹
“”"
一、前提

注意:selenium的使用方式和版本有很大的关系,例如selenium版本为3.141.0,会有
find_element_by_id()/ find_element_by_name()/find_element_by_class__name()等八大元素定位的方法
本次演示的selenium版本为4.8.3,故没有上述八大元素的写法,通用写法为:
先导包 from selenium.webdriver.common.by import By
再定位  browser.find_element(By.ID,'kw')/browser.find_element(By.NAME,'wd') 这样的写法

二、操作步骤
1.装包
需要用到的第三方包urllib3、selenium,安装方式例如:pip install selenium
如果需要特定版本,可以镜像安装:

pip install selenium  -i https://pypi.tuna.tsinghua.edu.cn/simple

3.1驱动安装

3.1.1自动安装(使用用外网可以访问的场景)

import time
from selenium import  webdriver
# 需要用到第三方库webdriver_manager
from webdriver_manager.chrome import ChromeDriverManagerbrowser = webdriver.Chrome(ChromeDriverManager().install())
# 打开网址
browser.get('https://cn.bing.com')
time.sleep(3)

3.1.2 手动安装(适用于无法连接公网时)

import timefrom selenium import webdriver
# 定位元素用
from selenium.webdriver.common.by import By
# 模拟回车用
from selenium.webdriver.common.keys import Keys
# 驱动的下载位置:https://registry.npmmirror.com/binary.html?path=chromedriver/
# 下载什么版本的驱动呢?首先查到你浏览器的版本,下载的驱动应为跟你浏览器版本一致或者最接近的版本,在上面链接中通常选择32位的,例如"chromedriver_win32.zip"
# 驱动位置的写法,也和selenium的版本有很大关系
browser = webdriver.Chrome(executable_path=r"D:chromedriver.exe")
# 定义下载的位置
#设置1
options = webdriver.ChromeOptions()
# 更改下载路径
# 如果该路径不存在会自动创建
prefs = {"download.default_directory":'C:\Download_test','download.prompt_for_download':False}新加一条,不加载图片prefs = {"download.default_directory":'C:\Download_test','download.prompt_for_download':False,"profile.managed_default_content_settings.images":2}设置2,将创建的下载部分的设置添加到option中
options.add_experimental_option('prefs',prefs)
# 打开网址
# browser.get('https://cn.bing.com/')
# 强制等待3秒
# 最大窗口
browser.maximize_window()
time.sleep(3)browser.get('https://im.qq.com/pcqq')

驱动下载位置:https://registry.npmmirror.com/binary.html?path=chromedriver/

4.实战技巧

下面三行代码解决:下载过程中出现"此类型的文件可能会损害您的计算机,请问您是选择保留还是舍弃"

browser.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': "C:\Download_test"}}
command_result = browser.execute("send_command", params)
browser.find_element(By.CLASS_NAME,'download').click()

向下滑动(方法一)

js_button = "window.scrollTo(0,1000) "
browser.execute_script(js_button)
time.sleep(3)

向下滑动(方法二)元素聚焦

time.sleep(3)
try:target = browser.find_element(By.XPATH,'//*[@id="app"]/div[4]/div[2]/div[1]/h3')browser.execute_script("arguments[0].scrollIntoView();",target)
except:passtime.sleep(100)
browser.quit()

补充
“”"
使用selenium4的痛点:
1.网上资料较少,很多selenium3方法不可用
2.selenium3的下滑页面方法失效
“”"

http://www.lryc.cn/news/129828.html

相关文章:

  • 《PostgreSQL 开发指南》第32篇 物化视图
  • 【RocketMQ】快速入门
  • AB跳转轮询:让你的独立站收款智能化
  • 所有用户都能使用sudo吗
  • 【广州华锐视点】VR警务教育实训系统模拟真实场景进行实践训练
  • 【深入浅出C#】章节 7: 文件和输入输出操作:处理文本和二进制数据
  • Matlab中图例的位置(图例放在图的上方、下方、左方、右方、图外面)等
  • 【算法学习】两数之和II - 输入有序数组
  • 聚观早报|京东称在技术投入没有止境;木蚁机器人完成B2轮融资
  • C语言:选择+编程(每日一练)
  • 信道数据传输速率、码元传输速率、调制速度,信号传播速度之间的关系
  • docker的使用方法总结
  • 【C#】条码管理操作手册
  • RabbitMq-发布确认高级(避坑指南版)
  • Blender增强现实3D模型制作指南【AR】
  • Java查看https证书过期时间(JKS,CERT)
  • 关于vue,记录一次修饰符.stop和.once的使用,以及猜想。
  • 解决git reset --soft HEAD^撤销commit时报错
  • 【BASH】回顾与知识点梳理(三十四)
  • Python可视化在量化交易中的应用(11)_Seaborn折线图
  • 无涯教程-TensorFlow - TensorBoard可视化
  • [uni-app] uview封装Popup组件,处理props及v-model的传值问题
  • 【C++】int a;和int *p=new int;有什么区别?
  • redis事务管理
  • TPS_C++版本及功能支持备注
  • 同步jenkinsfile流水线(sync-job)
  • STM32单片机WIFI-APP智能温室大棚系统CO2土壤湿度空气温湿度补光
  • SpringBoot复习:(52)不再需要使用@EnableTransactionManagement的原因
  • HackNos 3靶场
  • 【办公自动化】使用Python批量生成PPT版荣誉证书