【问题标题】:Chrome Extension Not Running in Selenium JavaScript Webdriver TestChrome 扩展未在 Selenium JavaScript Webdriver 测试中运行
【发布时间】:2018-11-25 16:52:30
【问题描述】:

我有一个 Selenium JavaScript Webdriver 测试,它按预期工作,没有错误,除了应该更改页面标题然后获取 cookie 的 Chrome 扩展程序不起作用。当我在测试页面上手动运行扩展程序时,它按预期工作,所以我很确定问题是我如何调用扩展程序。

我确实有一个关于“二进制”chromeOption 的问题,从我查看的文档来看,它看起来只是包含扩展名的文件夹,但是这些相同的文档在 chromeOption 中的“扩展名”指向一个文件在同一个文件夹中。我到底应该在“二进制”中输入什么?

代码sn-p:

    const path = require('path');
    const chromePath = require('chromedriver').path;
    const webdriver = require('selenium-webdriver');
    const chrome = require('selenium-webdriver/chrome');
    const until = webdriver.until;
    var chromeOptions = webdriver.Capabilities.chrome();
    
    var service = new chrome.ServiceBuilder(chromePath).build();
    chrome.setDefaultService(service);
    
    var builder = new webdriver.Builder();
    var options = new chrome.Options();
    var preferences = new webdriver.logging.Preferences();
    var driver;
    
    preferences.setLevel(webdriver.logging.Type.BROWSER, webdriver.logging.Level.ALL);
    options.setLoggingPrefs(preferences);
    
    var extensionArray = [""];
    
    async function AppTest() {
        
        let driver = builder
                        .forBrowser('chrome')
                        .withCapabilities({
                            'browserName': 'chrome',
                            'chromeOptions':
                            {
                                binary: 
    // Folder containing a copy of the extension

'/Users/MyUserName/Desktop/Testing/chrome-extensions',
                                args: [],
    // Local copy of the extension in the same folder as the test
                                extensions: ['./chrome-extension/extension-demo.crx']
                            }
                        })
                        .setChromeOptions(options)
                        .build();
    
        // Tests
    
        await driver.get('https://testURL.com');
    
        await driver.manage().getCookie("test").then(function(cookie){
            console.log("test", cookie);
        });
    
        await driver.quit();
    }

【问题讨论】:

    标签: javascript google-chrome selenium selenium-webdriver google-chrome-extension


    【解决方案1】:

    我不确定“二进制”密钥的用途,因为我从未遇到过。

    您可以在this post 看到我是如何在 Java 中添加扩展的。关键是您不能按原样添加扩展名;它需要转换为base-64。

    【讨论】:

      猜你喜欢
      • 2014-07-12
      • 1970-01-01
      • 2012-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多