2017-05-06 3 views
-2

マイコード。 「userId」と「password」フィールドにログインとパスワードを入力します。また、「送信」ボタンを押すか、システムにログインすることができるかどうかを確認する条件を記述したいと思います。 "userId"と "password"が正しい場合、 "Submit"ボタンを押すと、新しいページが読み込まれ、コードの次の部分がポストされます。しかし、ユーザーが悪いパスワードを入力したときに条件を追加したいと思います。次に、「送信」ボタンを押すと、「Bad login information」というメッセージがページに表示されます。誰も私がそのような状態を書くのを助けることができますか?ここで不正なパスワードの条件セレニウムjava

for(int i =0;i<userName.size();i++){ 
     driver.findElement(By.id("userId")).sendKeys(userName.get(i)); 
     Thread.sleep(6000); 
     driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS); 

     driver.findElement(By.id("password")).sendKeys(password.get(i)); 
     Thread.sleep(6000); 
     driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS); 
     driver.findElement(By.id("Submit")).click(); 

//

  // change password 
      driver.findElement(By.xpath(".//*[@id='_id9']/table/tbody/tr[2]/td[1]/table[1]/tbody/tr[5]/td[2]/a")).click(); 
      driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS); 
      Thread.sleep(6000); 
      driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS); 


      // new password 
      String pwd = RandomStringUtils.random(15, upper+smaller+number+character); 
      System.out.println("New password: " + pwd); 
      driver.findElement(By.id("newPassword")).sendKeys(pwd); 
      Thread.sleep(6000); 
      driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS); 

      // confirm password 
      driver.findElement(By.id("confirmPassword")).sendKeys(pwd); 
      System.out.println("Confirm password: " + pwd); 
      Thread.sleep(10000); 
      driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS); 
+0

新しい質問をする前に、コミュニティの専門家から提供されたソリューションで以前の質問に取り組み、ディスカッションスレッドを閉じることができますか?ありがとう – DebanjanB

+0

SOはコード作成サービスではありません。あなたが求めていることをするのを助けるために、SOとウェブに関するたくさんの情報があります。学習の一部は、実際にあなたの仕事を他人に依頼する前にあなたが求めていることをやろうとする時間を取っています。 [尋ねる]と[どのくらいの研究努力が必要ですか?](https://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-expected-of-stack-overflow-users)をお読みください。試したコードやエラーメッセージなどの実行結果を提供してください。ページや関連するHTMLへのリンクも提供してください。 – JeffC

答えて

0

には、次の試してみてください新しいページをロードする:Submitボタンをクリックした後

を。この要素があなたのページに存在するかどうかを確認することができます:driver.findElement(By.xpath(".//*[@id='_id9']/table/tbody/tr[2]/td[1]/table[1]/tbody/tr[5]/td[2]/a"));

もしそうなら、それはログインが成功したか新しいログインが成功したかどうかを示します。あなたは、次の試してください送信ボタンをクリックした後に行うことができます

loginSuccessful()関数の

UPDATE

List<WebElement> myElemnt = driver.findElements(By.xpath(".//*[@id='_id9']/table/tbody/tr[2]/td[1]/table[1]/tbody/tr[5]/td[2]/a")); 

loginSuccessful(myElemnt); 

//実装:

public boolean loginSuccessful(WebElement element){ 
    try{ 
     element; 
     return true; 
     } 

    catch(Exception e){ 
     System.out.println("Bad Login Information!!"); 
     return false; 
     } 

} 

OLD

String beforeTitle = driver.getTitle(); 

    //put your Click Submit Button code here 

    String afterTitle = driver.getTitle(); 

    if(beforeTitle.equals(afterTitle)){ 

    System.out.println("Bad Login Information!!"); 

    } 
+0

これは正常ですが、要素が存在しない場合、デフォルトの30秒のタイムアウトは待機を引き起こします。あなたはfind要素(そして要素ではない)で独自の関数を作成することができます。より速いコードのant catch例外 –

+0

実際には、あなたが書いたものが動作します。ありがとうございました。しかし、彼は@ Hezi Israeliを書いていました。そのような項目がない場合、それは30sを待っています、あなたはそれが多くの時間を待たないようにそれを行う方法を助けることができますか? – danio900409

+0

そして、どうにかして最初のケースで30タイムアウトを減らすことはできますか?両側のタイトルは同じです:( – danio900409

関連する問題