Javascript Seleniumwebdirver与Java-登录身份验证失败;传递正确的凭证

Javascript Seleniumwebdirver与Java-登录身份验证失败;传递正确的凭证,javascript,java,authentication,selenium-webdriver,login-page,Javascript,Java,Authentication,Selenium Webdriver,Login Page,我正在尝试亲自登录页面 使用自动化代码传递有效凭据时,系统仍给出错误: 登录失败 语言:Eclipse上带有Java的SeleniumWebDriver 我试过标准方法: WebElement Login = driver.findElement(By.className("flex-signup")); Login.click(); WebElement EmailAdd = driver.findElement(By.id("emailAddress")); WebElement Ema

我正在尝试亲自登录页面 使用自动化代码传递有效凭据时,系统仍给出错误:

登录失败

语言:Eclipse上带有Java的SeleniumWebDriver

我试过标准方法:

WebElement Login = driver.findElement(By.className("flex-signup"));
Login.click();
WebElement EmailAdd = driver.findElement(By.id("emailAddress")); 

WebElement EmailAdd = Driver.findElement(By.id("****"));
EmailAdd.sendKeys("************");
WebElement Passwd = driver.findElement(By.id("****"));
Passwd.sendKeys("*******");
我还使用了另一种方式,JavaScript驱动程序。但这也不适用于应用程序

JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].value='*************';" ,****);
jse.executeScript("document.getElementById('****').value='**********';");
WebElement BLogin = driver.findElement(By.className("ladda-label"));
jse.executeScript("arguments[0].click();", BLogin);

应用程序使用JavaScript,所以我也使用了JavaScript驱动程序,但输出相同。

尝试不同的浏览器,如Firefox、chrome和opera

WebDriver firefox=新FirefoxDriver//for firefox

WebDriver chrome=新的ChromeDriver//对于铬


请尝试查看。

登录后会发生什么。是否执行单击? 如果登录表单需要一些时间渲染,即使30毫秒可能很重要,那么您应该等待!否则,即使登录表单还没有准备好获取输入数据,驱动程序也会立即尝试发送密钥凭证,所以一些第一个符号可能会丢失


另外,我知道我可能会犯一些严重的语法错误,对此表示抱歉。

尝试在代码中添加显式等待,即仅当文本可见时才在字段中输入文本。请尝试以下代码:

WebDriverWait wait=new WebDriverWait(driver, 20);
WebElement Login = driver.findElement(By.className("flex-signup"));
Login.click();
//WebElement EmailAdd = driver.findElement(By.id("emailAddress")); 
//WebElement EmailAdd = Driver.findElement(By.id("****"));
WebElement EmailAdd=wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("****"));

EmailAdd.sendKeys("************");

WebElement Passwd = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("****"));
Passwd.sendKeys("*******");

然后点击登录按钮

我想你忘记了登录过程中的一个步骤

下面是我认为大多数登录过程的外观

查找ID框并发送密钥 找到PW框并发送密钥 找到登录按钮并单击/send Enter键和PW send键。 你的看起来像这样

单击登录 查找WebElement EmailAdd 使用不同的驱动程序调用查找WebElement EmailAdd x2 向EmailAdd发送密钥 查找WebElement Passwd 向Passwd发送密钥
我用的是chrome。我已经试过geko和ie了。我认为这与这里的浏览器无关。因为在chrome中,只需点击登录,代码就会一直运行到最后。结果是:登录失败。如果我错了,请纠正我。我不熟悉编码世界。登录失败的原因。?错误日志?谢谢你的回复。步骤是正确的。我必须首先单击登录选项,然后输入凭据。这就是为什么第一行代码用于登录。是的,我使用2个不同的驱动程序cal作为web元素电子邮件id。我现在删除了一个。但经过整改,问题也没有得到解决。无论如何,谢谢你,谢谢你,丹尼尔。是的,我用了明确的时间等待。但这也无济于事。无论如何,谢谢你。我无法再访问网站链接。所以我不能尝试其他方法。