51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5068|回复: 6
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-3-14 08:27:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
selenium有一个方法是getAlert(),是获得弹出窗口的信息。我不输入用户名或密码点击[确定]按钮后会通过js弹出一个请填写用户名或密码,这个弹出信息窗可以捕捉到,但是我填写错误的用户名或密码,点击[确定]后,会提交至另一个页面处理,然后不正确便弹出信息框提示登录失败,这个弹出框我就捕捉不到,我该怎么写?我的具体代码如下:

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

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

这个确定按钮点击后都是调用一个js程序,如果有用户名或密码没有天, 则直接alert一个信息框,如果都填写了则转向另一个处理页面。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2011-3-14 15:00:11 | 只看该作者
if (selenium.isAlertPresent()){
String message = selenium.getAlert();
......
}else{
......
}
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2011-3-15 16:19:00 | 只看该作者
回复 2# robin.von


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

使用道具 举报

该用户从未签到

4#
发表于 2011-3-15 16:56:22 | 只看该作者
把测试页面的源代码帖出来!
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2011-3-16 09:11:25 | 只看该作者
回复 4# robin.von

这个就是被测代码,有很多样式和无关的我都删去了。

  1. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  2. <head>
  3.         <title>test</title>
  4.        
  5.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6.         <meta http-equiv="expires" content="0" />
  7.         <meta http-equiv="CACHE-CONTROL" content="no-cache" />
  8. </head>
  9. <script language="javascript" type="text/javascript" src="./js/cookiecontrol.js">
  10. </script>

  11. <script type="text/javascript">

  12. function validate()
  13. {       
  14.         if (checkbox()==true)
  15.         {
  16.                 document.mainform.submit();
  17.         }
  18. }
  19. function checkbox()
  20. {
  21.         var txt_user = document.getElementById('user');
  22.         var txt_pwd = document.getElementById('pwd');
  23.         if(txt_user.value=='')
  24.         {
  25.                 alert('The user name should not be empty.');
  26.             mainform.user.focus();
  27.             return false;
  28.            }
  29.            if(txt_pwd.value=='')
  30.         {
  31.                    alert('The password should not be empty.');
  32.             mainform.pwd.focus();
  33.             return false;
  34.            }
  35.         return true;
  36. }


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

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

  41.     <table border=0 cellspacing="0">
  42.   <tr>
  43.     <td align='left'>username</td>
  44.   </tr>
  45.   <tr>
  46.     <td><input name="user" type="text" id="user" value="" /></td>
  47.   </tr>
  48.   <tr>
  49.     <td>password</td>
  50.   </tr>
  51.   <tr>
  52.     <td  align="left" valign="top"><input name="pwd" type="password" id="pwd" value="" /></td>
  53.   </tr>
  54.   <tr>
  55.     <td style="background:url(images/lg_07_2.gif);" align="center" valign="middle">
  56. <input type = 'submit' value = 'submit' onclick ='validate()' align='middle'></td>
  57.   </tr>
  58. </table>
  59. </div>
  60. </body>
  61. </form>
  62. </html>

复制代码
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2011-3-16 09:25:59 | 只看该作者
捕捉不到的那个对话框试试用AutoIt去抓吧,这个对话框是通过SERVER验证以后再弹出的,SELENIUM貌似抓不到,我以前也碰到过,好像用AUTOIT可以抓到。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2011-3-16 13:41:13 | 只看该作者
回复 6# robin.von


谢谢,我去试试~
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-24 06:59 , Processed in 0.085520 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表