# selenium配合浏览器插件进行测试

By [weigr](https://paragraph.com/@hiweigr) · 2022-03-28

---

### 1.打包扩展

首先需要将扩展进行打包成crx后缀文件：

![插件打包页面](https://storage.googleapis.com/papyrus_images/36d5bf5ef8e980060dad0274e89ad2d11052eab61d580883ed3546f5fec3214a.png)

插件打包页面

点击`打包扩展程序`,会弹出对话框,填入需要打包的扩展的目录

![打包对话框](https://storage.googleapis.com/papyrus_images/7523dc7d728b26f4022f90cdab13bcf438bdae05f50dfddf169ecc9d3b72346f.png)

打包对话框

一般`chrome`浏览器的扩展插件都存放在默认的目录下

> C:\\Users\\你的用户名\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Extensions

该目录存放有所有的插件文件

![浏览器插件目录](https://storage.googleapis.com/papyrus_images/c11ad5c68c56bb9bd240e326f8dddad0f5670e3822ce40d186d4abcb2fc4c519.png)

浏览器插件目录

文件名对应扩展的唯一ID,ID可以在插件的详情里找到,然后去上面找到同名文件夹

![插件ID](https://storage.googleapis.com/papyrus_images/8bcbb4e2aead3e83aaf37675546aeee254eec2e3d7ec7f9f2aca6168f594ce3a.png)

插件ID

![ID同名文件](https://storage.googleapis.com/papyrus_images/968d72dfca75d8ffe61bc09641eb5af5a82574d98ea70473c25ff9f35da2665f.png)

ID同名文件

我们需要的是该目录里面的地址

![插件位置](https://storage.googleapis.com/papyrus_images/efb0da6f555ebe9bb723bcac26a5d151454382cbf9c2d290ad8c580055104b14.png)

插件位置

![打包信息页面](https://storage.googleapis.com/papyrus_images/aa861c3ea2b62f73868753325bc01e726fd7f9a864067cab86a38abd3dfab625.png)

打包信息页面

![刚才的插件地址](https://storage.googleapis.com/papyrus_images/91ee1e037fd66ef3e2c53cf5f38912a24bcf52191b4c3ebbedb3987b54ebb6c9.png)

刚才的插件地址

点击打包,稍等片刻即可成功,打包时会生成一个密钥文件,以后更新扩展会用到,妥善保存

![打包成功](https://storage.googleapis.com/papyrus_images/e91a5e9b5ccd36f08fb29526ff05fdfb6dc2aa4402ab7fef884ce850d8335130.png)

打包成功

![打包crx文件成功](https://storage.googleapis.com/papyrus_images/1f76cc9962968e59ba22774ca97beab0ea17980deda1e6f11d46f6309a094189.png)

打包crx文件成功

### 2.添加插件到脚本

    from selenium import webdriver
    from selenium.webdriver.chromium.options import ChromiumOptions
    
    driver_path = r'C:\Users\xxx\Desktop\Coin\Doc\soft\chromedriver\driver.exe'
    user_data = r"user-data-dir=D:\python\Coin\userdata"
    
    op = ChromiumOptions()
    # 将crx文件的路径添加到列表中，该列表将用于将其提取到ChromeDriver
    op.add_extension("打包插件的位置")
    # 给定一个空的文件用于保存目前的浏览器信息,否则每次都会重新初始化浏览器
    op.add_argument(user_data)
    
    chrome = webdriver.Chrome(chrome_options=op, executable_path=driver_path)
    chrome.get('chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/home.html')
    

现在selenium可以带上插件进行浏览器测试了

![带插件测试](https://storage.googleapis.com/papyrus_images/5a9e6e7dcf13337fd89c868d0870095f0dfc469689488f750de670c9c8f10776.png)

带插件测试

3.结束
----

写教程不易，如果你觉得对你有帮助，麻烦点一下关注，非常感谢!

[https://twitter.com/hiweigr](https://twitter.com/hiweigr)

---

*Originally published on [weigr](https://paragraph.com/@hiweigr/selenium)*
