diff --git a/src/content/selenium-api.js b/src/content/selenium-api.js index 1fb02a7..c991bb3 100755 --- a/src/content/selenium-api.js +++ b/src/content/selenium-api.js @@ -348,6 +348,9 @@ function Selenium(browserbot) { } }); } + window.postMessage({ + direction: "from-content-setnavigatorwebdriver" + }, "*"); } Selenium.DEFAULT_TIMEOUT = 30 * 1000; diff --git a/src/page/runScript.js b/src/page/runScript.js index 3584709..91565fd 100644 --- a/src/page/runScript.js +++ b/src/page/runScript.js @@ -25,12 +25,24 @@ window.onerror = function(msg){ } }; window.addEventListener("message", function(event) { - if (event.source == window && event.data && event.data.direction == "from-content-runscript") { - isWanted = true; - var doc = window.document; - var scriptTag = doc.createElement("script"); - scriptTag.type = "text/javascript" - scriptTag.text = event.data.script; - doc.body.appendChild(scriptTag); + if (event.source == window && event.data) { + switch (event.data.direction) { + case "from-content-runscript": + isWanted = true; + var doc = window.document; + var scriptTag = doc.createElement("script"); + scriptTag.type = "text/javascript"; + scriptTag.text = event.data.script; + doc.body.appendChild(scriptTag); + break; + case "from-content-setnavigatorwebdriver": + Object.defineProperty(navigator, 'webdriver', { + get: function () { return true }, + enumerable: true, + configurable: true + }); + break; + default: + } } });