Skip to content

Commit 04b0148

Browse files
author
Sergey Shekyan
committed
Set navigator.webdriver to true in page's context when playing a testcase
Per https://w3c.github.io/webdriver/#dom-navigatorautomationinformation-webdriver
1 parent 28c6189 commit 04b0148

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

src/content/selenium-api.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,9 @@ function Selenium(browserbot) {
348348
}
349349
});
350350
}
351+
window.postMessage({
352+
direction: "from-content-setnavigatorwebdriver"
353+
}, "*");
351354
}
352355

353356
Selenium.DEFAULT_TIMEOUT = 30 * 1000;

src/page/runScript.js

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,24 @@ window.onerror = function(msg){
2525
}
2626
};
2727
window.addEventListener("message", function(event) {
28-
if (event.source == window && event.data && event.data.direction == "from-content-runscript") {
29-
isWanted = true;
30-
var doc = window.document;
31-
var scriptTag = doc.createElement("script");
32-
scriptTag.type = "text/javascript"
33-
scriptTag.text = event.data.script;
34-
doc.body.appendChild(scriptTag);
28+
if (event.source == window && event.data) {
29+
switch (event.data.direction) {
30+
case "from-content-runscript":
31+
isWanted = true;
32+
var doc = window.document;
33+
var scriptTag = doc.createElement("script");
34+
scriptTag.type = "text/javascript";
35+
scriptTag.text = event.data.script;
36+
doc.body.appendChild(scriptTag);
37+
break;
38+
case "from-content-setnavigatorwebdriver":
39+
Object.defineProperty(navigator, 'webdriver', {
40+
get: function () { return true },
41+
enumerable: true,
42+
configurable: true
43+
});
44+
break;
45+
default:
46+
}
3547
}
3648
});

0 commit comments

Comments
 (0)