![](/img/trans.png)
[英]Chrome automation extension locked when running Selenium test case
[英]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.