簡體   English   中英

Chrome擴展程序未在Selenium Javascript Webdriver測試中運行

[英]Chrome Extension Not Running in Selenium Javascript Webdriver Test

我有一個Selenium Javascript Webdriver測試正在按預期方式工作,沒有給出任何錯誤,除了Chrome擴展程序應該更改頁面標題然后獲取cookie之外,這是行不通的。 當我在測試頁上手動運行擴展程序后,它可以按預期運行,因此,我可以肯定的是問題出在我如何調用擴展程序上。 任何指針將不勝感激。

我確實對“二進制” chromeOption有一個問題,從我看過的文檔來看,它看起來像只是保存擴展名的文件夾,但隨后這些相同的文檔在chromeOption中將其“擴展名”指向同一個文件夾。 我到底應該在“二進制”中放什么?

再次感謝!

代碼段:

    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();
    }

我不確定“二進制”密鑰的用途,因為我從未遇到過。

您可以在這篇文章中看到如何在Java中添加擴展。 問題是您不能按原樣添加擴展名。 它需要轉換為base-64。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM