Selenium没有在表单上填写密码属性

时间:2011-06-28 16:19:55

标签: java 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" /> 

从我的Selenium脚本创建的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", "cw@qa.com");
        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"),表示填写了密码字段。我还看到测试在慢速模式下完成,脚本填写用户名,但不填写密码字段。

1 个答案:

答案 0 :(得分:2)

非常奇怪,从未真正发现为什么这种方法不适合这个特定的领域,它可以在页面的其他地方使用。

我解决这个问题的方式是

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