【开箱即用】Selenium初始化配置
2022-10-07 本文已影响0人
天才与白痴
一、下载驱动器
根据自己selenium版本、操作系统版本,下载对应版本的驱动即可。有需要可以把驱动的路径加入到环境变量中。各浏览器的驱动下载地址如下:
Chrome
chrome的webdriver:http://chromedriver.storage.googleapis.com/index.html
Firefox
Firefox驱动下载地址为:https://github.com/mozilla/geckodriver/releases/
IE
IE浏览器驱动下载地址为:http://selenium-release.storage.googleapis.com/index.html
python的话,下载里面的IEDriverServerxxx.zip即可,这个是区分32和64位系统的。需要注意的是,如果要打开IE浏览器的话,需要在浏览器的Internet选项中的安全页里有4个安全选项,Internet、本地Internet、受信任的站点、受限制的站点,这4个里面都有一个启用保护模式,都需要勾选上才可以
二、初始化配置示例(Chrome驱动)
定义一个配置函数,然后直接调用即可。
def InitialChromeBrowser():
# 驱动器地址
f = './chromedriver_for_mac_90'
# chrome_options 初始化选项
chrome_options = webdriver.ChromeOptions()
# 设置浏览器初始 位置x,y & 宽高x,y
# chrome_options.add_argument(f'--window-position={217},{172}')
# chrome_options.add_argument(f'--window-size={1200},{1000}')
# 关闭自动测试状态显示 // 会导致浏览器报:请停用开发者模式
# window.navigator.webdriver还是返回True,当返回undefined时应该才可行。
chrome_options.add_experimental_option("excludeSwitches", ['enable-automation'])
# 关闭开发者模式
chrome_options.add_experimental_option("useAutomationExtension", False)
# 禁止图片加载
prefs = {"profile.managed_default_content_settings.images": 2}
chrome_options.add_experimental_option("prefs", prefs)
# 设置中文
chrome_options.add_argument('lang=zh_CN.UTF-8')
# 更换头部
chrome_options.add_argument(
'user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"')
# 隐藏浏览器窗口
# chrome_options.add_argument('--headless')
# 部署项目在linux时,其驱动会要求这个参数
# chrome_options.add_argument('--no-sandbox')
# 创建浏览器对象
driver = webdriver.Chrome(f, options=chrome_options)
# 设置执行js代码转换模式,隐藏自动化软件特征标识 window.navigator.webdriver
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})""",
})
# 打开网站 测试
# driver.get('https://www.baidu.com/')
return driver
使用方法:
driver = InitialChromeBrowser()
driver.get("https://www.baidu.com/")