gpt4 book ai didi

selenium - 使用 Selenium 进行浏览器插件测试

转载 作者:行者123 更新时间:2023-12-03 13:46:15 24 4
gpt4 key购买 nike

我正在编写一个 webapp,它有一个用于 Firefox 和 chrome 的浏览器插件组件。我当前的测试系统使用了一系列通过 Selenium IDE 创建的 Selenium 测试。

是否还可以为 firefox 和 chrome(可能还有其他浏览器)安装、激活和删除 selenium 浏览器插件?

我认为最大的问题是安装/启用浏览器插件需要重新启动浏览器,我不确定这是否会通过 selenium 关闭。

通过访问检测浏览器的 php 脚本的内部站点链接,可以轻松处理插件的获取。

最佳答案

答案是 , Selenium 2 支持(远程)安装浏览器扩展。

Chrome 和 Firefox WebDriver 支持远程安装扩展。以下是 Chrome 和 Firefox 的示例代码:

Chrome 合金

File file = new File("extension.crx"); // zip files are also accepted
ChromeOptions options = new ChromeOptions();
options.addExtensions(file);

// Option 1: Locally.
WebDriver driver = new ChromeDriver(options);

// Option 2: Remotely
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

火狐

File file = new File("extension.xpi");
FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.addExtension(file);

// Option 1: Locally
WebDriver driver = new FirefoxDriver(firefoxProfile);

// Option 2: Remotely
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(FirefoxDriver.PROFILE, firefoxProfile);
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

我还实现了 Opera 和 Safari 扩展的自动安装,并将它们合并到上游:
  • Opera 驱动程序:https://github.com/operasoftware/operadriver/pull/93
  • Safari 驱动程序:https://github.com/SeleniumHQ/selenium/pull/87

  • 歌剧

    这个 API 类似于 FirefoxDriver。

    File file = new File("extension.oex"); // Must end with ".oex"
    OperaProfile operaProfile = new OperaProfile();
    operaProfile.addExtension(file);

    // Option 1: Locally
    WebDriver driver = new OperaDriver(operaProfile);

    // Option 2: Remotely
    DesiredCapabilities capabilities = DesiredCapabilities.opera();
    capabilities.setCapability("opera.profile", operaProfile);
    WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

    苹果浏览器

    这个 API 类似于 ChromeDriver。

    File file = new File("extension.safariextz");
    SafariOptions options = new SafariOptions();
    options.addExtensions(file);

    // Option 1: Locally.
    WebDriver driver = new SafariDriver(options);

    // Option 2: Remotely
    DesiredCapabilities capabilities = DesiredCapabilities.safari();
    capabilities.setCapability(SafariOptions.CAPABILITY, options);
    WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

    IE浏览器

    祝你好运。

    关于selenium - 使用 Selenium 进行浏览器插件测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15005833/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com