2011-06-28 4 views
3

私は、問題をデバッグするための非常に簡単なスクリプトをSeleniumに用意しています。私が行うのは、ユーザー名を入力してからパスワードを入力し、入力したパスワードがパスワードフィールドにあることを確認するだけです。私がこれをやっている理由は、それが正しいパスワードであるときに、「パスワードの間違った問題」を一貫して得ることができないということです。 Seleniumがフォーム上にパスワード属性を記入していません

は、フォームのHTML:私のセレンスクリプトから作成された

<input class="inp" id="userName" name="userName" type="text" />    
<input class="inp" id="password" name="password" type="password" /> 
<label for="rememberMe">remember</label> 
<input class="rem" id="rememberMe" name="rememberMe" type="checkbox" value="true" />   
<input name="submit" id="loginSubmit" value="go" type="image" src="http://terra/wp-content/themes/ecobee/images/arrow-right_16x16.gif" /> 

とJavaは:

package com.example.tests; 

import com.thoughtworks.selenium.*; 
import org.junit.After; 
import org.junit.Before; 
import org.junit.Test; 
import java.util.regex.Pattern; 

public class toso extends SeleneseTestCase { 
    @Before 
    public void setUp() throws Exception { 
     selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://terra/"); 
     selenium.start(); 
    } 

    @Test 
    public void testToso() throws Exception { 
     selenium.open("/"); 
     selenium.type("userName", "[email protected]"); 
     selenium.type("password", "qqqqqqqq"); 
     verifyEquals("qqqqqqqq", selenium.getValue("password")); 
    } 

    @After 
    public void tearDown() throws Exception { 
     selenium.stop(); 
    } 
} 

これはパスワードフィールドが記入されて示唆expected "" to match glob "qqqqqqqq" (had transformed the glob into regexp "qqqqqqqq")スロー私はまた、テストが完了見ました。低速モードでは、スクリプトはユーザー名を入力しますが、パスワードフィールドは入力しません。

+0

た解決方法は、あなたは、パスワードフィールドに異なる記述子を使用してみましたが? – rs79

+0

@ rs79はい、私の心を越えていますが、記述子は動作しています。上記のテストに 'selenium.highlight(" password ")'を追加し、バブルの修正を強調表示します。これはまだ問題だと思いますか? – cmwright

+0

selenium.getValue(...);でパスワードフィールドのcss識別子を試してみることをお勧めします。 – rs79

答えて

2

非常に奇妙なことに、この方法がこの特定のフィールドではうまくいかない理由は分かりません。

私はこれが

char[] password = {'p','a','s','s','w','o','r','d'}; 
for(int i = 0; i < 8; i++){ 
    selenium.keyPress("password", password[i]); 
} 
関連する問題