@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 CHANGED
@@ -1,5 +1,13 @@
1
1
  # Unreleased
2
2
 
3
+ # 0.20.2
4
+
5
+ - Fixes getting majorVersion on Edge (!133)
6
+
7
+ # 0.20.1
8
+
9
+ - Fixes enabling developer mode (!131)
10
+
3
11
  # 0.20.0
4
12
 
5
13
  - Enable developer mode for incognito tests (!126)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eyeo/get-browser-binary",
3
- "version": "0.20.0",
3
+ "version": "0.20.2",
4
4
  "description": "Install browser binaries and matching webdrivers",
5
5
  "repository": {
6
6
  "type": "git",
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
- if (!devModeToggle.checked)
39
- devModeToggle.click();
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
- // Developer mode needs to be enabled
263
+ // From Edge 134 on, developer mode needs to be enabled
248
264
  // for custom extensions to work properly
249
- await enableDeveloperMode(driver);
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 elem.getAttribute("innerHTML");
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 =