无头浏览器相关
https://blog.csdn.net/qq_24137739/article/details/93631569
https://blog.csdn.net/weixin_33768153/article/details/81183577
https://www.cnblogs.com/lingcai/p/10616311.html
function i(e) {
var r = ["webdriver", "__driver_evaluate", "__webdriver_evaluate", "__selenium_evaluate", "__fxdriver_evaluate", "__driver_unwrapped", "__webdriver_unwrapped", "__selenium_unwrapped", "__fxdriver_unwrapped"];
return a.filter(r, o(e)).length > 0
}
function o(r) {
return function(e) {
return e in r
}
}
function u(e) {
return "__webdriverFunc"in e
}
function c(e) {
var r = ["webdriver", "_Selenium_IDE_Recorder", "_selenium", "calledSelenium"];
return a.filter(r, o(e)).length > 0
}
function f(e) {
return "domAutomation"in e || "domAutomationController"in e
}
function s(e) {
return e.documentElement && n(e.documentElement, "webdriver")
}
function d(e) {
return "__lastWatirAlert"in e || "__lastWatirConfirm"in e || "__lastWatirPrompt"in e
}
function l(e) {
return e.webdriver || !1
}
function v(e) {
return "webdriver"in e
}
function _(e) {
return "__webdriver_script_fn"in e
}
function y(e) {
var r = !1;
try {
r = e.cookie.indexOf("ChromeDriverwjers908fljsdf37459fsdfgdfwru=") > -1
} catch (e) {}
return r
}
function x(e) {
return "$cdc_asdjflasutopfhvcZLmcfl_"in e || "$chrome_asyncScriptInfo"in e
}
function m(e) {
return "_WEBDRIVER_ELEM_CACHE"in e
}
function b(e) {
return "__$webdriverAsyncExecutor"in e
}
function j(r) {
var e = ["driver-evaluate", "webdriver-evaluate", "selenium-evaluate", "webdriverCommand", "webdriver-evaluate-response"];
document.addEventListener && a.forEach(e, function(e) {
document.addEventListener(e, A(e, r), !1)
})
}