51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 7298|回复: 31
打印 上一主题 下一主题

找高手解决 selenium rc 的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-12-15 15:12:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在测的时候 打开一个新页面,填写文本时总出错。 不知道哪里的原因,java代码如下,可以运行下帮我找下原因,我初学。
import com.thoughtworks.selenium.SeleneseTestCase;

public class Addcustomer extends SeleneseTestCase{
    public void testUntitled() throws Exception {
            selenium.open("http://purple-dev/bugfree/Login.php");
                selenium.type("TestUserName", "wangxiangyong");
                selenium.type("TestUserPWD", "123456");
                selenium.click("SubmitLoginBTN");
                selenium.waitForPageToLoad("3000");
       
                selenium.selectFrame("NavFrame");
                selenium.click("OpenBug");
               
                selenium.selectFrame("relative=up");
                selenium.type("BugTitle", "test1");
                selenium.selectFrame("NavFrame");
                selenium.click("link=[退出]");
                selenium.waitForPageToLoad("30000");

}
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-12-15 15:18:30 | 只看该作者
有可能是这地方出问题:
1. selenium.waitForPageToLoad("3000");
把Timeout设置成30000试试看,waitForPageToLoad("3000")和Thread.Sleep(3000)的效果貌似不一样的哦


2. 有可能selectFrame的问题,偶晚上回去试试看~

[ 本帖最后由 欺负人 于 2009-12-15 15:32 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-12-15 15:24:21 | 只看该作者

不是那里哦

报错的地方时在  倒数第4行那里,        selenium.type("BugTitle", "test1");  

com.thoughtworks.selenium.SeleniumException: ERROR: Element BugTitle not found
        at com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:97)
        at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:91)
        at com.thoughtworks.selenium.DefaultSelenium.type(DefaultSelenium.java:291)
        at Addcustomer.testUntitled(Addcustomer.java:15)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at junit.framework.TestCase.runTest(TestCase.java:154)
        at junit.framework.TestCase.runBare(TestCase.java:127)
        at com.thoughtworks.selenium.SeleneseTestCase.runBare(SeleneseTestCase.java:212)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
        at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-12-15 15:32:46 | 只看该作者
恩~~呵呵, 我也猜是第那一行出的问题~~呵呵
补充一句 你能把Exception的信息抓出来吗?

1. 你用这个命令"java -jar selenium-server.jar -interactive -multiWindow" 重新启动一下Server,试试看,Selenium.type本身没什么问题,我觉得 我估计前面可能是因为Selenium抓不到Frame引起的Exception

2.你可以用Selenium.open("$New Frame URl")代替这一行selenium.selectFrame("NavFrame"),试试看

[ 本帖最后由 欺负人 于 2009-12-15 16:14 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-12-16 10:19:35 | 只看该作者
等下试试看, 我也觉得是 frame 没有抓到
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2009-12-16 10:53:39 | 只看该作者
还是不行啊
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-12-16 10:58:12 | 只看该作者
file:///C:/Documents%20and%20Settings/Administrator/桌面/a.png
命令行里的 信息  图片不显示  在附件有
盼高手指点。

[ 本帖最后由 linyucc 于 2009-12-16 11:01 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2009-12-16 11:30:00 | 只看该作者

最好把你测试的页面源码贴出来

最好把你测试的页面源码贴出来,不然这样看不出个所以然,都不知道为什么BugTitle这个元素找不到,是frame没设对还是别的什么原因
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2009-12-16 11:42:36 | 只看该作者

源代码1

11111

[ 本帖最后由 linyucc 于 2009-12-16 16:25 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2009-12-16 11:42:56 | 只看该作者

源代码2

22222

[ 本帖最后由 linyucc 于 2009-12-16 16:25 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2009-12-16 11:43:26 | 只看该作者

源代码3

333333

[ 本帖最后由 linyucc 于 2009-12-16 16:25 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2009-12-16 11:46:50 | 只看该作者
这些够了吧   文本ID 应该是对的
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2009-12-16 12:23:54 | 只看该作者

回复 1# 的帖子

试试 selenium.selectFrame("relative=up"); 后
select openbug所在的Frame。
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2009-12-16 13:35:44 | 只看该作者
楼上的意思不明白,能详细点吗
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2009-12-16 13:44:22 | 只看该作者
贴了不少,但是还是看不清页面结构,你自己可以用firebug查看页面看看,到底如何结构,如果这个就是你的页面,你可以试试selenium.selectFrame("relative=top"); 然后在做type,如果id是唯一的,selenium应该能找到,如果是在这个页面内的话。否则就用firebug查看明确这个input所在的frame的id或者name,在select过去,试试看。
如果页面显示的所谓frame实际都是div来实现的话,应该不用做selectframe的操作,用id或xpath就可以操作元素了。嵌套iframe的话就有点麻烦。解决你这问题,最好是能在你的测试环境下进行调试,这个只有你自己多试试了。
从你的代码猜测:你有selectFrame(“NavFrame”),应该是导航条Frame的话,那你在selenium.selectFrame("relative=up")或selenium.selectFrame("relative=top")后,在加一句selectFrame(“BugMain”);,然后在type操作试试看。
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2009-12-16 13:50:06 | 只看该作者
补充一下:selectFrame(“BugMain”)有没这个Frame我不知道,因为看不全你的页面,但是就像shanxi所说的,如果没有所谓的main Frame你就select回openbug所在的那个Frame试试看,这个Frame应该有的,但这里看不出它的名称。
回复 支持 反对

使用道具 举报

该用户从未签到

17#
 楼主| 发表于 2009-12-16 15:13:54 | 只看该作者
现在确定是 frame 没有抓到。
是点了按钮后 打开第2个页面时 抓不到frame,我看了第2个页面的源代码 没有frame。见附件2
附件1 是第1个页面的代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2009-12-16 15:34:02 | 只看该作者
~~~It seems that 我的猜测是对的!~:
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2009-12-16 15:41:09 | 只看该作者
我晕,你这是点击后弹出了新页面,你把firefox设置成每次打开用新窗口,你就会看到你打开了一个新ff浏览器了,你要selectWindow到那个打开的新ff浏览器窗口,然后在进行操作,而不是selectFrame,它不是个frame。
回复 支持 反对

使用道具 举报

该用户从未签到

20#
 楼主| 发表于 2009-12-16 16:19:33 | 只看该作者
selectwindow  怎么用?
selenium.selectWindow("");    ??
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-5-3 23:30 , Processed in 0.078113 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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