51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5320|回复: 12
打印 上一主题 下一主题

Selenium入门问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-2-23 22:07:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
public void setUp() throws Exception {
           selenium = new DefaultSelenium("localhost", 4444, "*iexplore", "http://www.baidu.com/");
           selenium.start();
    }
    public void testUntitled() throws Exception {
                selenium.open("/");
                selenium.type("kw", "selenium");
                selenium.click("su");
                selenium.waitForPageToLoad("30000");
                verifyTrue(selenium.isTextPresent("selenium_百度百科"));
                selenium.click("xpath=//table[@id='1']/tbody/tr/td/a");
    }

    public void tearDown() throws Exception {   
        selenium.stop();   
        super.tearDown();   
    }
代码就这么多,但是在运行到verifyTrue(selenium.isTextPresent("selenium_百度百科"));
的时候就运行不下去了,就算删掉这行,下一样也不运行,也不报错,有人可以帮忙指导下么?

谢谢回复,我这个就是一个做一个简单的测试例子,在firefox里面录制
(1)进入bairu
(2) 搜索selenium
(3) 点击搜索
(4) 点击第一个搜到的链接,会自己开个页面
想说一下在firefox里面回放以上4步,第4步回放不来,如果可以你也试试
然后变成java 放到eclipse里面执行,也是第4步回放不来

[ 本帖最后由 gaoqiu 于 2010-2-24 14:18 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2010-2-23 22:11:43 | 只看该作者
在IDE上运行也是,最后一步都不运行的
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>1</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">1</td></tr>
</thead><tbody>
<tr>
        <td>open</td>
        <td>/</td>
        <td></td>
</tr>
<tr>
        <td>type</td>
        <td>kw</td>
        <td>selenium</td>
</tr>
<tr>
        <td>clickAndWait</td>
        <td>su</td>
        <td></td>
</tr>
<tr>
        <td>click</td>
        <td>//table[@id='1']/tbody/tr/td/a</td>
        <td></td>
</tr>
</tbody></table>
</body>
</html>
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-2-24 09:10:13 | 只看该作者
你描述的运行不下去是什么意思啊?
能不能把运行时的情况贴图,或者把运行时控制台的打印信息copy到这里看下,你这样说不运行搞不清楚是selenium本身的问题,还是代码的问题造成,或者是别的什么原因,所以要提供更多的诊断信息啊~
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-2-24 09:16:31 | 只看该作者
才看到,你用的是iexplore浏览器,iexplore浏览器对xpath的支持很不好
建议你用firefox来测试看看"*firefox",是不是有同样问题出现
如果一定用iexplore浏览器,尽量少用xpath来识别元素,或者只写简单的xpath,不要写复杂的。不然就像你说的不运行要不就是死慢,你说的不运行可能就是因为太慢了,让你觉得不运行了,哈哈哈哈~~~~
iexplore浏览器建议用dom的方式提供元素的识别,所以javascript要熟点了,呵呵~~
最好还是用它自带的“id=xxxxx”或"name=xxxxx"或"link=xxxxxx"的方式,这样识别是比较快兼容性也比较好的我猜,呵呵
你代码里的//table[@id='1']/tbody/tr/td/a应该是个link,就用"link=链接的文本"来替换试试看啊
补充一点:ie浏览器在执行selenium.waitForPageToLoad("30000");这样的语句时有时也会有问题,如果不是全页面刷新的话,这个问题有遇到过,也请教过人,也不知道是什么原因造成的。

[ 本帖最后由 park_p 于 2010-2-24 09:19 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2010-2-24 14:17:32 | 只看该作者
谢谢楼上回复,我这个就是一个做一个简单的测试例子,在firefox里面录制
(1)进入bairu
(2) 搜索selenium
(3) 点击搜索
(4) 点击第一个搜到的链接,会自己开个页面
想说一下在firefox里面回放以上4步,第4步回放不来,如果可以你也试试
然后变成java 放到eclipse里面执行,也是第4步回放不来
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2010-2-24 15:22:51 | 只看该作者
被你说的我在本地跑了一遍代码,根本执行就是对的,第四步是执行了的。
你觉得执行不来是因为selenium做了点击搜索出的第一个链接动作就退出了,整个执行就结束了。你看不到执行结果而已,执行是正确的,我这里点击并打开了搜索到的第一个页面了。
你在selenium.click("xpath=//table[@id='1']/tbody/tr/td/a");这句后面加上Thread.sleep(10000);停个十秒钟,就看到selenium打开了搜索到的第一个页面,也就是正确执行了点击第一个链接的动作,你再试试吧~
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-2-25 10:01:59 | 只看该作者
我试了下,是可以跑的
  1. package com.test;

  2. import com.thoughtworks.selenium.SeleneseTestCase;

  3. public class Baidu  extends SeleneseTestCase{
  4.         public void setUp() throws Exception{
  5.                 setUp("http://www.baidu.com","*firefox D:\\Program Files\\Mozilla Firefox\\firefox.exe");
  6.                 //System.out.println("data:"+data);
  7.         }
  8.        
  9.         public void testUntitled() throws Exception {
  10.         selenium.open("/");
  11.         selenium.type("kw", "selenium");
  12.         selenium.click("su");
  13.         selenium.waitForPageToLoad("30000");
  14.         
  15.         verifyTrue(selenium.isTextPresent("selenium_百度百科"));
  16.         selenium.click("xpath=//table[@id='1']/tbody/tr/td/a");
  17.         }

  18.         public void tearDown() throws Exception {   
  19.                 selenium.stop();   
  20.                 super.tearDown();   
  21.         }
  22. }
复制代码
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-3-18 16:48:36 | 只看该作者
试了下,是OK的,一定要等新的页面完全出来再stop record
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2010-4-15 13:35:10 | 只看该作者
用你的HTML代码在火狐上试过了,可以运行,最后一步有警告而已。没大碍。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2010-4-28 17:12:07 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2010-4-28 17:16:58 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2010-4-28 17:19:14 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2010-5-1 11:40:46 | 只看该作者

学习

回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-25 07:17 , Processed in 0.081036 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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