前言
selenium可以实现自动化操作主流浏览器,是进行自动化测试和数据爬取的常用工具。以前的大部分程序都是使用selenium控制Chrome,很少有操作Edge,随着新版Edge浏览器的出现和广泛使用,selenium也支持控制Edge浏览器。现在以Edge为例说明安装配置过程。
1.安装驱动
Selenium本身是无法直接控制浏览器的,不同的浏览器需要不同的驱动程序,Google Chrome需要安装ChromeDriver、Edge需要安装Microsoft Edge WebDriver,其他浏览器也需要安装相应的驱动。
先输入网址edge://version/查看Edge版本:
获取了Edge浏览器的版本后,在Microsoft下载中心
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/#downloads下载对应的驱动:
然后下载,将解压后的可执行二进制文件msedgedriver.exe放入所在Python环境路径下的Scripts路径下:
此时,PyCharm未更新环境变量时,可以新打开CMD并切换到所在虚拟环境运行。
2.安装使用selenium库
使用conda安装selenium库:
conda install selenium -y
也可以使用pip进行安装。
进行简单测试,如下:
# -*- coding: utf-8 -*-
'''
@Author : Corley Tang
@contact : cutercorleytd@gmail.com
@Github : https://github.com/corleytd
@Time : 2023-12-12 23:24
@Project : Hands-on Crawler with Python-edge_with_selenium
使用selenium操作edge访问百度
'''
# 导入所需的库
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
url = 'https://www.baidu.com/'
browser = webdriver.Edge() # 定义Edge浏览器,默认会加载当前Python虚拟环境目录下的Scripts目录下的msedgedriver.exe,也可以通过executable_path参数指定路径
browser.maximize_window() # 最大化窗口
try:
browser.get(url)
input_box = browser.find_element(By.ID, 'kw') # 定位网页中id为kw的元素,即百度搜索输入框
input_box.clear() # 清空输入框
input_box.send_keys('Python') # 输入搜索关键词
input_box.send_keys(Keys.ENTER) # 按下回车键
WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, 'content_left'))) # 等待网页加载完成
print(browser.current_url)
print(browser.get_cookies())
print(browser.title)
print(len(browser.page_source))
finally:
time.sleep(5)
browser.close()
总结
selenium是一个常用的用于自动化测试和爬虫的框架,随着Edge浏览器的广泛使用,使用selenium操作Edge浏览器也是一种必然。