美文网首页
【开箱即用】Selenium初始化配置

【开箱即用】Selenium初始化配置

作者: 天才与白痴 | 来源:发表于2022-10-07 20:36 被阅读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/")
    

    相关文章

      网友评论

          本文标题:【开箱即用】Selenium初始化配置

          本文链接:https://www.haomeiwen.com/subject/gfgbartx.html