51Testing软件测试论坛

标题: 谁帮我看看这个问题啊? [打印本页]

作者: zktbduandd    时间: 2009-12-5 13:31
标题: 谁帮我看看这个问题啊?
public void testElegroupElec() throws Exception {
                selenium.open("/epmis/jsp/elegroupquery/elegroup_elec_index.jsp?functioncode=ZYHDLSJCK");
                selenium.selectFrame("ffffff");
                selenium.click("sd3");
                selenium.click("sd4");
                selenium.click("sd1");
                selenium.click("sd2");
                selenium.selectFrame("relative=up");
                selenium.selectFrame("rightframe");
                selenium.selectFrame("condFrame");
                selenium.waitForPageToLoad("50000");


                selenium.click("//input[@value='查询']");
        }


selenium生成的测试脚本,怎么执行到selenium.selectFrame("condFrame");就报错
com.thoughtworks.selenium.SeleniumException: ERROR: Element condFrame 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.selectFrame(DefaultSelenium.java:355)
        at com.example.tests.groupusers.ElegroupElec.testElegroupElec(ElegroupElec.java:27)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        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:128)
        at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

各位大侠帮忙看看,我刚接触,感觉selenium不稳定啊!
作者: zktbduandd    时间: 2009-12-5 15:58
我的界面是frameset里的一个frame指向一个页面,页面里含有tab,tab里指向了一个iframe,ifarme的name是condFrame,明明是有的,但是怎么就找不到呢?是不是含有其它写法啊?我是生成测试脚本,在eclipse中用junit来执行的,没有人会吗?大家都怎么利用selenium?没有人生成测试脚本吗?
作者: park_p    时间: 2009-12-7 12:03
selenium对iframe的支持有点问题好像,尤其是在iframe和frame都有的情况下,你的iframe还是套在frame内的。呵呵~~
从你的代码结构看,好像有两个frame,一个左一个右,这个iframe是套在右边frame下的,你要操作内部的元素定位是有点麻烦。
如果你iframe内要操作的元素有id属性,且这个id属性无重复,可以直接用id操作元素,不用定位到这个iframe内,如果没有id属性,必须要定位到iframe内的话,可以借助javascript来定位,我以前这样试过是可行的,你也可以试试看能不能解决你的问题啊。
具体记不清了,可以类似于:selenium.selectFrame("dom=window.document.getElementsByName('condFrame')[0]")这样的方法来定位,如果不行,内部的js可以改,直到可用,你可以试试看。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2