我正在尝试构建自己的密码管理器。我正在实施的当前站点是starbucks.com。
我正在使用 C# 和 Selenium webdriver 与网站交互,特别是 chromedriver.exe。
登录页面(位于https://www.starbucks.com/account/signin)具有良好的凭据,但如果该页面是使用 chromedriver 启动的,则会将我转储到主页而不登录。我在页面中所做的任何事情都不会影响这一点。手动新浏览器窗口工作正常,但即使没有与页面交互,chromedriver 版本也被阻止,我输入详细信息并手动单击按钮。
浏览页面的 HTML 显示了一些巨大的 javascript 函数,其中包含字符串 webdriver,我只能假设它以某种方式检查和阻止 webdriver。如果我关闭页面的 javascript,登录表单将不起作用。
我认为这种阻塞是由一项名为 Optimizely 的服务执行的。它可能不相关,但我在他们的网站上找到了这个标志,它不会影响问题。该标志如下所示: https ://www.starbucks.com/account/signin?optimizely_opt_out=true
我检查了两次按钮单击之间的网络流量。一个带有 webdriver,一个没有 webdriver。它们非常相似,但正常的提交引用大约是 cookie 的一半。他们似乎都没有引用网络驱动程序,所以我认为在点击之前阻塞正在被除冰。简而言之,我找不到它。
有谁知道这种对 webdriver 的检测是如何工作的?有没有办法绕过这个检测?我认为它正在 javascipt 中的某个地方执行。