如何使用Selenium绕过Google reCAPTCHA进行测试

viv*_*ien 1 java selenium automated-tests recaptcha

我正在使用Selenium来测试我的基于Spring的Web应用程序.你能否在测试应用程序时建议绕过谷歌reCAPTCHA的解决方案.

我正在这个环境中运行自动化测试.因此,手动检查reCAPTCHA的"我不是机器人"是不可能的.

出于测试目的,我在以下位置给出的测试环境中使用测试密钥.

Google reCAPTCHA测试密钥

在此输入图像描述

我使用Angular 5作为我的应用程序的前端.我正在使用ng-recaptcha库在ui中添加reCAPTCHA.

Ido*_*Ran 6

我不知道您的确切代码,但您应该能够使用系统属性或某些标志来运行您的服务器,该标志指示应禁用reCaptcha并且不首先将其添加到表单中.


小智 6

您应该将驱动程序“切换”到 iFrame 以准确定位 reCaptcha 的复选框。命令:

WebElement iFrame = driver.findElement(By.xpath("xpath_of_reCaptcha_iFrame"));
driver.switchTo().frame(iFrame);
Run Code Online (Sandbox Code Playgroud)

// 现在可以点击 reCaptcha 的复选框了。

WebElement iFrame_checkbox = 
driver.findElement(By.xpath("xpath_of_reCaptcha_checkbox"));
iFrame_checkbox.click();
Run Code Online (Sandbox Code Playgroud)


Job*_*ews 5

您可以通过在reCAPTCHA中找到复选框的x和y坐标并单击该元素来执行此操作。

WebElement captcha = driver.findElement(By.xpath("html/body/div[1]/div[3]/div[2]/form/div[5]/div"));
        builder.moveToElement(captcha, 50, 30).click().build().perform();
Run Code Online (Sandbox Code Playgroud)