所以我尝试使用 this 发送 SMS
通过 Selenium
进行站点。
选择我的国家/地区和电话号码后,我得到了这个验证码
:
因此,使用Selenium
,我成功点击了这个复选框
,但始终得到了这个图像验证
:
我尝试在单击此复选框
之前进行几次 sleep ,但此图像验证
仍然存在。
这种行为不是通过手动场景发生的,所以我的问题是为什么会发生这种情况?
这就是我找到元素并单击 Captcha
复选框的方式:
IWebElement frame = driver.FindElements(By.XPath("//iframe[contains(@src, 'recaptcha')]"))[0];
driver.SwitchTo().Frame(frame);
IWebElement checkbox = Driver.Browser.FindElement(By.CssSelector("div.recaptcha-checkbox-checkmark"));
checkbox.click();
最佳答案
这就是验证码
的全部要点,即机器人不会通过某个点/抓取网页;当网站怀疑机器人事件时,就会出现这种情况,因此只是为了确保有人在另一边,显示这些图像;这样只有人类才能进行进一步的事件。
当您尝试手动执行此操作时,您不会获得这些图像,因为您在浏览器的本地安装上验证了这一点,该浏览器不断保存有关您事件的 cookie;但是当您通过 Selenium WebDriver 启动同一屏幕时,将启动一个新的实例并确保该实例/ session 是合法的;网站可以询问验证码
详细信息,
但是为了避免这种情况,您可以尝试使用已经回答过问题的相同 session ,您可以使用 selenium
中的 DesiredCapability
来完成此操作,请谷歌了解更多。
关于c# - 通过Selenium点击Captcha总是引发图片验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43715178/