为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕无忌1623718 2023-06-04 16:58:33
我正在尝试亲自操作登录页面使用自动化代码传递有效凭据,但系统仍然出现错误:登录失败。语言:在 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 驱动程序,但输出相同。
查看完整描述

4 回答

?
缥缈止盈

TA贡献2041条经验 获得超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按钮


查看完整回答
反对 回复 2023-06-04
?
青春有我

TA贡献1784条经验 获得超8个赞

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

PS 我知道我可能会犯一些严重的语法错误,对此深表歉意。


查看完整回答
反对 回复 2023-06-04
?
catspeake

TA贡献1111条经验 获得超0个赞

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

  • WebDriver firefox=new FirefoxDriver() //for 火狐

  • WebDriver chrome=new ChromeDriver();//对于 chrome。

试试看。



查看完整回答
反对 回复 2023-06-04
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

我认为您忘记了登录过程中的一个步骤。

下面是我认为大多数登录过程的样子。

  1. 找到 ID Box 并发送钥匙

  2. 找到 PW Box 并发送密钥

  3. 找到登录按钮并单击/发送“输入密钥”和 PW 发送密钥。

你的看起来像这样。

  1. 点击登录(?)

  2. 查找 WebElement 电子邮件添加

  3. 查找 WebElement EmailAdd (x2)(使用不同的驱动程序调用)

  4. 将密钥发送到 EmailAdd

  5. 查找 WebElement 密码

  6. 将密钥发送到 Passwd


查看完整回答
反对 回复 2023-06-04
  • 4 回答
  • 0 关注
  • 155 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信