【开箱即用】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/")
上一篇下一篇

猜你喜欢

热点阅读