c# - 通过Selenium点击Captcha总是引发图片验证

标签 c# selenium captcha

所以我尝试使用 this 发送 SMS通过 Selenium 进行站点。

选择我的国家/地区和电话号码后,我得到了这个验证码:

enter image description here

因此,使用Selenium,我成功点击了这个复选框,但始终得到了这个图像验证:

enter image description here

我尝试在单击此复选框之前进行几次 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/

相关文章:

python - 循环时我应该在哪里实例化我的 WebDriver 实例?

python - send_keys(Keys.RETURN) 抛出错误

r - 如何在 R/Shiny 中使用(重新/)验证码?

captcha - 新的谷歌验证码 : How to change text "I' m not a robot"

c# - 来自字符串类型名称的强类型对象 (C#)

c# - 当 Web 服务返回结果时,您如何检测连接何时中断?

C# StreamReader, "ReadLine"用于自定义分隔符

c# - 加载数据内文件 : can't ignore 1st row while skipping columns?

jquery - Selenium 在 Internet Explorer 中的 wait_for_condition

javascript - 提交前验证验证码