@eyeo/get-browser-binary 0.20.0 → 0.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/RELEASE_NOTES.md +8 -0
- package/package.json +1 -1
- package/src/chromium.js +16 -0
- package/src/edge.js +23 -6
- package/test/browsers.js +5 -0
package/RELEASE_NOTES.md
CHANGED
package/package.json
CHANGED
package/src/chromium.js
CHANGED
|
@@ -28,6 +28,8 @@ import {download, getMajorVersion, checkVersion, checkPlatform, errMsg,
|
|
|
28
28
|
snapshotsBaseDir, platformArch, checkExtensionPaths} from "./utils.js";
|
|
29
29
|
|
|
30
30
|
async function enableDeveloperMode(driver) {
|
|
31
|
+
const currentHandle = await driver.getWindowHandle();
|
|
32
|
+
|
|
31
33
|
await driver.switchTo().newWindow("window");
|
|
32
34
|
await driver.navigate().to("chrome://extensions");
|
|
33
35
|
await driver.executeScript(() => {
|
|
@@ -39,6 +41,20 @@ async function enableDeveloperMode(driver) {
|
|
|
39
41
|
if (!devModeToggle.checked)
|
|
40
42
|
devModeToggle.click();
|
|
41
43
|
});
|
|
44
|
+
|
|
45
|
+
await driver.wait(async() => {
|
|
46
|
+
const checked = await driver.executeScript(() => {
|
|
47
|
+
const devModeToggle = document
|
|
48
|
+
.querySelector("extensions-manager").shadowRoot
|
|
49
|
+
.getElementById("toolbar").shadowRoot
|
|
50
|
+
.querySelector("#toolbar #devMode");
|
|
51
|
+
return devModeToggle.checked;
|
|
52
|
+
});
|
|
53
|
+
return checked;
|
|
54
|
+
}, 500);
|
|
55
|
+
|
|
56
|
+
await driver.close();
|
|
57
|
+
await driver.switchTo().window(currentHandle);
|
|
42
58
|
}
|
|
43
59
|
|
|
44
60
|
/**
|
package/src/edge.js
CHANGED
|
@@ -32,11 +32,26 @@ import {download, killDriverProcess, wait, getMajorVersion, checkVersion,
|
|
|
32
32
|
let {platform} = process;
|
|
33
33
|
|
|
34
34
|
async function enableDeveloperMode(driver) {
|
|
35
|
+
const currentHandle = await driver.getWindowHandle();
|
|
36
|
+
await driver.switchTo().newWindow("window");
|
|
35
37
|
await driver.navigate().to("edge://extensions/");
|
|
36
|
-
const devModeToggle = driver.findElement(By.id("developer-mode"));
|
|
37
38
|
|
|
38
|
-
|
|
39
|
-
devModeToggle.
|
|
39
|
+
await driver.executeScript(() => {
|
|
40
|
+
const devModeToggle = document.getElementById("developer-mode");
|
|
41
|
+
if (!devModeToggle.checked)
|
|
42
|
+
devModeToggle.click();
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
await driver.wait(async() => {
|
|
46
|
+
const checked = await driver.executeScript(() => {
|
|
47
|
+
const devModeToggle = document.getElementById("developer-mode");
|
|
48
|
+
return devModeToggle.checked;
|
|
49
|
+
});
|
|
50
|
+
return checked;
|
|
51
|
+
}, 500);
|
|
52
|
+
|
|
53
|
+
await driver.close();
|
|
54
|
+
await driver.switchTo().window(currentHandle);
|
|
40
55
|
}
|
|
41
56
|
|
|
42
57
|
/**
|
|
@@ -208,6 +223,7 @@ export class Edge extends Browser {
|
|
|
208
223
|
}
|
|
209
224
|
|
|
210
225
|
let options = new edge.Options().addArguments("no-sandbox", ...extraArgs);
|
|
226
|
+
let majorVersion = getMajorVersion(versionNumber);
|
|
211
227
|
if (headless) {
|
|
212
228
|
if (versionNumber && getMajorVersion(versionNumber) >= 114)
|
|
213
229
|
options.addArguments("headless=new");
|
|
@@ -244,9 +260,10 @@ export class Edge extends Browser {
|
|
|
244
260
|
}
|
|
245
261
|
}, 30000, `${errMsg.driverStart}: msedgedriver`, 1000);
|
|
246
262
|
|
|
247
|
-
//
|
|
263
|
+
// From Edge 134 on, developer mode needs to be enabled
|
|
248
264
|
// for custom extensions to work properly
|
|
249
|
-
|
|
265
|
+
if (majorVersion >= 134)
|
|
266
|
+
await enableDeveloperMode(driver);
|
|
250
267
|
|
|
251
268
|
return driver;
|
|
252
269
|
}
|
|
@@ -261,7 +278,7 @@ export class Edge extends Browser {
|
|
|
261
278
|
continue;
|
|
262
279
|
|
|
263
280
|
for (let button of await elem.findElements(By.css("button"))) {
|
|
264
|
-
text = await
|
|
281
|
+
text = await button.getAttribute("outerHTML");
|
|
265
282
|
if (!text.includes("Details"))
|
|
266
283
|
continue;
|
|
267
284
|
|
package/test/browsers.js
CHANGED
|
@@ -224,6 +224,11 @@ for (let browser of Object.keys(BROWSERS)) {
|
|
|
224
224
|
|
|
225
225
|
it("runs", async function() {
|
|
226
226
|
driver = await BROWSERS[browser].getDriver(version);
|
|
227
|
+
const url = await driver.getCurrentUrl();
|
|
228
|
+
// check that default automation tab is in focus:
|
|
229
|
+
// data;, (chromium) and about:blank (firefox)
|
|
230
|
+
expect(url).toEqual(expect.stringMatching(/^(data:,|about:blank)$/));
|
|
231
|
+
|
|
227
232
|
await basicUrlTest(driver, browser);
|
|
228
233
|
|
|
229
234
|
let browserVersion =
|