亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有 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 關注
  • 199 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號