网站可以检测到您何时将 selenium 与 geckodriver 一起使用吗?
Can a website detect when you are using selenium with geckodriver?
是否可以检测到由 Selenium 和 geckodriver 控制的 firefox 浏览器实例?
请注意有一个 ,但我想知道这是否适用于 firefox/geckodriver。
是的,您可以通过简单的检查检测 geckodriver 控制的硒 JavaScript
var runningSelenium = !("showModalDialog" in window);
正如其他人指出的那样,站点可以通过多种不同的方式来识别和检测您是 运行 已由 selenium 自动化的浏览器。幸运的是,一些检测机制非常简单,只需查找一堆环境默认值,例如屏幕尺寸等。
例如,当使用 Selenium 测试 Dropbox 等应用程序的 OAUTH 注册序列时,只需将屏幕设置为非默认值(并偏移浏览器)即可避免 CAPTCHA 阶段 window 模拟任务栏):
@@headless = Headless.new( dimensions: '1600x1200x24' )
@@headless.start
browser = Watir::Browser.new :firefox
width = browser.execute_script( 'return screen.width;' )
height = browser.execute_script( 'return screen.height;' ) - 95
browser.driver.manage.window.resize_to( width, height )
browser.driver.manage.window.move_to( 0,0 )
是否可以检测到由 Selenium 和 geckodriver 控制的 firefox 浏览器实例?
请注意有一个
是的,您可以通过简单的检查检测 geckodriver 控制的硒 JavaScript
var runningSelenium = !("showModalDialog" in window);
正如其他人指出的那样,站点可以通过多种不同的方式来识别和检测您是 运行 已由 selenium 自动化的浏览器。幸运的是,一些检测机制非常简单,只需查找一堆环境默认值,例如屏幕尺寸等。
例如,当使用 Selenium 测试 Dropbox 等应用程序的 OAUTH 注册序列时,只需将屏幕设置为非默认值(并偏移浏览器)即可避免 CAPTCHA 阶段 window 模拟任务栏):
@@headless = Headless.new( dimensions: '1600x1200x24' )
@@headless.start
browser = Watir::Browser.new :firefox
width = browser.execute_script( 'return screen.width;' )
height = browser.execute_script( 'return screen.height;' ) - 95
browser.driver.manage.window.resize_to( width, height )
browser.driver.manage.window.move_to( 0,0 )