首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium JavaScript Test驱动程序测试中未运行Chrome扩展

Selenium JavaScript Test驱动程序测试中未运行Chrome扩展
EN

Stack Overflow用户
提问于 2018-06-16 04:43:44
回答 1查看 814关注 0票数 0

我有一个Selenium Chrome Webdriver测试,它工作正常,没有给出任何错误,除了一个应该更改页面标题然后获取JavaScript的Chrome扩展不起作用。当我在测试页面上手动运行扩展时,它可以正常工作,所以我非常确定问题出在我调用扩展的方式上。

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

代码片段:

代码语言:javascript
复制
    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();
    }
EN

回答 1

Stack Overflow用户

发布于 2018-06-20 23:30:54

我不确定“二进制”密钥是用来做什么的,因为我从来没有遇到过它。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50882420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档