所以,我要使我的硒无法被检测到。我使用的不是无头,此处唯一失败的测试是Webdriver测试,here是在navigator.webdriver = true时标记的。我也关注this post,它似乎很有用,但全部是JS Puppeteer,我只需要Webdriver测试部分,而我不能正确使用它。
我看到有一个先前的问题得到了回答,但是除非我弄错了,否则它没有提供解决方案,这更多是它为什么发生的原因。
我已经尝试使用JavascriptExecutor(都作为异步脚本而不是异步脚本)运行这段代码(请注意,我对JS毫无头绪,因为我的实际应用程序的语言是Java,所以大多数情况下都是反复试验):>
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, 'webdriver', {
get: () => false,
});
});
没用。我还尝试将其包装在“ async()=> {...”中,什么也没有。
我要运行的实际Java代码:
String navigatorScript = "await page.evaluateOnNewDocument(() => {\n" +
" Object.defineProperty(navigator, 'webdriver', {\n" +
" get: () => false,\n" +
" });\n" +
"});";
// Unrelated stuff here
driver = new ChromeDriver(options);
driver.get("https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html");
((JavascriptExecutor)driver).executeAsyncScript(navigatorScript);
谢谢。