我尝试使用Java + Selenium自动登录到我的Gmail帐户,但是每次我被Google阻止的时候。当我手动登录时(即使是在同一台服务器上),我也没有这样的问题。此外,如果我使用"sendKeys“类型lib (https://pypi.python.org/pypi/SendKeys/0.3),就没有这样的问题。
我的问题有两个方面:
谢谢
发布于 2015-08-17 09:53:16
实际上是速度的差异。人类打字速度慢,剧本写得很快。所以,你必须降低你的脚本速度。所以总的来说,你必须建造更好的机器人。任何服务器都不会检测到更好的机器人。
发布于 2015-08-31 19:35:40
您应该在代码中添加一些延迟,以欺骗google您的代码是真实的人类代码--仅此而已:) Thread.sleep可能是这里最简单的解决方案。
发布于 2016-02-24 07:12:54
打开gmail &登录&打开最新收到的邮件
DriverObj.get("http://www.gmail.com");
DriverObj.findElement(By.id("gmail-sign-in")).click();
DriverObj.findElement(By.id("Email")).sendKeys("youremailID");
DriverObj.findElement(By.id("next")).click();
DriverObj.findElement(By.id("Passwd")).sendKeys("yourpassword");
DriverObj.findElement(By.id("signIn")).click();
Thread.sleep(2000);
WebElement tableelement=DriverObj.findElement(By.xpath("//div[@class='Cp']/div/table//tbody"));
java.util.List<WebElement> tableelement1=tableelement.findElements(By.xpath("//div[@class='Cp']/div/table//tbody/tr"));
int tableelementsize=tableelement1.size();
int i;
if(tableelementsize>0){
//DriverObj.navigate().refresh();
for(i=0;i<tableelementsize;i++){
DriverObj.findElement(By.xpath("//div[@class='Cp']/div/table//tbody/tr/td[6]")).click();
}
}else {
if(tableelementsize==0){
DriverObj.navigate().refresh();
for(i=0;i<tableelementsize;i++){
DriverObj.findElement(By.xpath("//div[@class='Cp']/div/table//tbody/tr/td[6]")).click();
}
}邮箱的路径可能会发生变化(您需要根据您的工作进行更改)
https://stackoverflow.com/questions/31688618
复制相似问题