2016-07-25 9 views
2

複数のテストケースを実行中に、セレクションが添付ファイルに示すように無効なテキストを入力しています。以下 はエラーを示す2つの例です:テキストボックスに無効なテキスト(半角)が入力されています

  1. 代わりAutomationTest123_6035633258972を入力するのでは、それだけで6035633258972. Example1に入ります。
  2. AutomationTest123_636010703068635512と入力する代わりに、 と入力するとutomationTest123_636010703068635512となります。 Example2

コード

//StaticVariable is class which has static values 
    var username = StaticVariable.username; 
    var password = StaticVariable.password; 
    driver.FindElement(By.Id("username")).SendKeys(username); //putting wrong values 
    driver.FindElement(By.Id("password")).SendKeys(password); //putting wrong values 
    driver.FindElement(By.Id("login")).Click(); 

誰もがこの上で私を助けることができますか?助けていただければ幸いです。 driver.findElement(By.cssSelector("").clear();

それが役立つことがあります。

+0

オートメーションコードを共有できますか? – selva

+0

@selvaがコードを更新しました。 – shoaib

+0

StaticVariable.usernameをログに出力して、問題が他の場所にないことを確認してください。 – Nibb

答えて

0

は、テキストを入力しclearメソッドを使用します。

+0

コードをコードとしてフォーマットして、認識しやすく適切にフォーマットするようにしてください。編集/書式設定のヘルプトピックを読むことができますが、コードの場合、これを行う最も簡単な方法はコードの前に4つのスペースを入れることです。 – JeffC

+0

@Arun私はこれを試しましたが、結果は同じで、入力テキストの半分の値です。 – shoaib

0

すべての最初は

var username = StaticVariable.username; 

が正しい値を代入していることを確認します。

print 

を使用して、割り当て後のユーザー名の値を確認します。私は、これが問題になることができることを見てきた理由のカップルが存在することができ

driver.FindElement(By.Id("username")).click() 
driver.FindElement(By.Id("username")).clear() 
driver.FindElement(By.Id("username")).SendKeys(username); 
+0

このコードを実行するために3回ページを削っていることに気が付きましたか?要素を2回以上使用する場合は、変数に格納して参照するだけです。実行を高速化するだけでなく、保守性も向上します。そのIDが変更された場合は、3か所で更新する必要があります。 – JeffC

+0

@noor私はこれを試しましたが、結果が同じではない、入力ハーフテキストです。 – shoaib

+0

@JeffC yup、それを手に入れました。 – shoaib

0

:以下のコードを使用してみてくださいより

。最初にテキスト入力をクリアし、フォーカスがあることを確認します。

var username = StaticVariable.username; 
var password = StaticVariable.password; 
// Fill out user name 
var userElem = driver.findElement(By.id("username")); 
userElem.click(); 
userElem.clear(); 
userElem.sendKeys(userName); 
// Fill out password 
var passElem = driver.findElement(By.id("password")); 
passElem.click(); 
passElem.clear(); 
passElem.sendKeys(password); 
// Click login button 
driver.findElement(By.id("login")) 
     .click(); 

、しかし、それはそれを修正しない場合、私は、文字列を分割し、働いている時に、いくつかのキーを送信する状況がありました。そのにパフォーマンスペナルティがあるので、本当に必要な場合を除き、私はそれをしません。

public void fooTest() { 
    // Do stuff to get to the correct page, etc 
    var username = StaticVariable.username; 
    var password = StaticVariable.password; 
    // Fill out user name 
    var userElem = driver.findElement(By.id("username")); 
    sendKeys(userElem, userName); 
    // Fill out password 
    var passElem = driver.findElement(By.id("password")); 
    sendKeys(passElem, password); 
    // Click login button 
    driver.findElement(By.id("login")) 
      .click(); 
    // do assertions, etc 
} 

private void sendKeys(WebElement elem, String keys) { 
    elem.click(); 
    elem.clear(); 
    for (int i = 0; i < keys.length(); i) { 
     elem.sendKeys(keys.charAt(i)); 
    } 
} 

注:どの構文/ C#のエラーのために申し訳ありませんが、私はほとんどの言語を使用しました...私は、あなたをはるかによく知られたJava ;-)

+0

私はこれを試しましたが、その結果が同じではない、入力ハーフテキストです。 – shoaib

0

よりもむしろ「VAR」を使用してよ'string'のような特定の型を入れてみてください。問題は、.SendKeys()に渡されているものにあるか、それが関数によってどのように受け取られているかにあります。

string username = StaticVariable.username; 
string password = StaticVariable.password; 
関連する問題