带有 Java 登录身份验证失败的 Seleniumwebdirver;传递正确的凭据

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


登录失败。


语言:在 Eclipse 上使用 Java 的 Selenium webdriver。


我试过标准方式:


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 驱动程序,但输出相同。


慕无忌1623718
浏览 125回答 4
4回答

缥缈止盈

尝试在您的代码中添加显式等待,即仅在文本可见时才在字段中输入文本。尝试以下代码: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("*******");然后点击Login按钮

青春有我

Login.click 执行后会发生什么?如果登录表单需要一些时间来呈现(即使 30 毫秒也可能很重要),那么您应该等待!否则驱动程序将立即尝试发送密钥凭据(即使登录表单尚未准备好获取输入数据),因此一些第一个符号可能会丢失。PS 我知道我可能会犯一些严重的语法错误,对此深表歉意。

catspeake

尝试不同的浏览器,如 Firefox、chrome 和 opera。WebDriver firefox=new FirefoxDriver() //for 火狐WebDriver chrome=new ChromeDriver();//对于 chrome。试试看。

慕哥6287543

我认为您忘记了登录过程中的一个步骤。下面是我认为大多数登录过程的样子。找到 ID Box 并发送钥匙找到 PW Box 并发送密钥找到登录按钮并单击/发送“输入密钥”和 PW 发送密钥。你的看起来像这样。点击登录(?)查找 WebElement 电子邮件添加查找 WebElement EmailAdd (x2)(使用不同的驱动程序调用)将密钥发送到 EmailAdd查找 WebElement 密码将密钥发送到 Passwd
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java