casilin 发表于 2011-3-14 08:27:39

selenium 登录页面测试代码怎么写

selenium有一个方法是getAlert(),是获得弹出窗口的信息。我不输入用户名或密码点击[确定]按钮后会通过js弹出一个请填写用户名或密码,这个弹出信息窗可以捕捉到,但是我填写错误的用户名或密码,点击[确定]后,会提交至另一个页面处理,然后不正确便弹出信息框提示登录失败,这个弹出框我就捕捉不到,我该怎么写?我的具体代码如下:

selenium.open("http://登录页面地址");
selenium.type("user", "admin");
selenium.type("pwd", "admin");
selenium.click("btn");
String message = selenium.getAlert();

运行的时候报找不到这个alert。

这个确定按钮点击后都是调用一个js程序,如果有用户名或密码没有天, 则直接alert一个信息框,如果都填写了则转向另一个处理页面。

robin.von 发表于 2011-3-14 15:00:11

if (selenium.isAlertPresent()){
String message = selenium.getAlert();
......
}else{
......
}

casilin 发表于 2011-3-15 16:19:00

回复 2# robin.von


    它就是捕捉不到这个alert的弹出框,如果按照你这个判断的话,那么isAlertPresent()结果为false,我依旧不能获得该弹出框的信息

robin.von 发表于 2011-3-15 16:56:22

把测试页面的源代码帖出来!

casilin 发表于 2011-3-16 09:11:25

回复 4# robin.von

这个就是被测代码,有很多样式和无关的我都删去了。
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
        <title>test</title>
       
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <meta http-equiv="expires" content="0" />
        <meta http-equiv="CACHE-CONTROL" content="no-cache" />
</head>
<script language="javascript" type="text/javascript" src="./js/cookiecontrol.js">
</script>

<script type="text/javascript">

function validate()
{       
        if (checkbox()==true)
        {
                document.mainform.submit();
        }
}
function checkbox()
{
        var txt_user = document.getElementById('user');
        var txt_pwd = document.getElementById('pwd');
        if(txt_user.value=='')
        {
                alert('The user name should not be empty.');
            mainform.user.focus();
            return false;
           }
           if(txt_pwd.value=='')
        {
                   alert('The password should not be empty.');
            mainform.pwd.focus();
            return false;
           }
        return true;
}


</script>
<form enctype="multipart/form-data" action="login.html" id="mainform" name="mainform" method="post">
<body class="body" repeat-x #CCC;">

   <div style="border:0px;margin:0px auto; padding:0px; width:800px;">

    <table border=0 cellspacing="0">
<tr>
    <td align='left'>username</td>
</tr>
<tr>
    <td><input name="user" type="text" id="user" value="" /></td>
</tr>
<tr>
    <td>password</td>
</tr>
<tr>
    <tdalign="left" valign="top"><input name="pwd" type="password" id="pwd" value="" /></td>
</tr>
<tr>
    <td style="background:url(images/lg_07_2.gif);" align="center" valign="middle">
<input type = 'submit' value = 'submit' onclick ='validate()' align='middle'></td>
</tr>
</table>
</div>
</body>
</form>
</html>

robin.von 发表于 2011-3-16 09:25:59

捕捉不到的那个对话框试试用AutoIt去抓吧,这个对话框是通过SERVER验证以后再弹出的,SELENIUM貌似抓不到,我以前也碰到过,好像用AUTOIT可以抓到。

casilin 发表于 2011-3-16 13:41:13

回复 6# robin.von


谢谢,我去试试~
页: [1]
查看完整版本: selenium 登录页面测试代码怎么写