Python - 安装了扩展的远程 Webdriver

Python - Remote Webdriver with Extension installed in it(Python - 安装了扩展的远程 Webdriver)
本文介绍了Python - 安装了扩展的远程 Webdriver的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我想使用 BrowserStack 在不同的浏览器版本上测试一个扩展.这是一个返回具有指定功能的驱动程序的函数.我在本地机器上有一个用于 Chrome 的 .crx 文件 和一个用于 Firefox 的 .xpi 文件.我想使用 Remote Webdriver 并使用 Python 安装相应的扩展.

I want to test one extension on different browser versions using BrowserStack. This is a function that returns driver with specified capabilities. I have a .crx file for Chrome and an .xpi file for Firefox on my local machine. I want to use Remote Webdriver with a corresponding extension installed, using Python.

def my_webdriver(browser, browser_version, os, os_version):
    caps = {}
    caps["browser"] = browser
    caps["browser_version"] = browser_version
    caps["os"] = os
    caps["os_version"] = os_version
    caps["browserstack.debug"] = "true"
    driver = webdriver.Remote(
       command_executor = 'blahblahblah',
       desired_capabilities = caps)
    driver.maximize_window()
    return driver

推荐答案

对于 Firefox,您需要创建一个配置文件并使用 add_extension.然后将配置文件传递给 WebDriver 构造函数:

For Firefox, you need to create a profile and add your extension to it using add_extension. Then you pass the profile to the WebDriver constructor:

from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver
selenium.webdriver.firefox.firefox_profile import FirefoxProfile
...
fp = FirefoxProfile()
fp.add_extension('/path/to/your/extension.xpi')
driver = RemoteWebDriver(..., browser_profile=fp)

或者,您可以提前创建一个 Firefox 配置文件,然后手动将您的扩展添加到其中.稍后您将其路径作为参数传递给 FirefoxProfile()

Alternatively, you can create a Firefox profile in advance, and manually add your extenstion to it. Later you pass its path as parameter to FirefoxProfile()

fp = FirefoxProfile('/path/to/your/profile')

对于 Chrome,请使用 ChromeOptions:

For Chrome, use ChromeOptions:

from selenium.webdriver.chrome.options import Options as ChromeOptions
chrome_options = ChromeOptions()
chrome_options.add_extension('/path/to/your/extension.crx')
driver = RemoteWebDriver(..., desired_capabilities = caps + chrome_options.to_capabilities())

这篇关于Python - 安装了扩展的远程 Webdriver的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How do I make a list of all members in a discord server using discord.py?(如何使用 discord.py 列出不和谐服务器中的所有成员?)
how to change discord.py bot activity(如何更改 discord.py 机器人活动)
Issues with getting VoiceChannel.members and Guild.members to return a full list(让 VoiceChannel.members 和 Guild.members 返回完整列表的问题)
Add button components to a message (discord.py)(将按钮组件添加到消息(discord.py))
on_message() and @bot.command issue(on_message() 和@bot.command 问题)
How to edit a message in discord.py(如何在 discord.py 中编辑消息)