bruce.gu 发表于 2009-1-20 10:17:46

关于frame 用multiwindow的方式比较好。好像。。
原帖由 nosedive 于 2009-1-19 17:30 发表 http://bbs.51testing.com/images/common/back.gif


问题解决了,我之前写的不清楚,估计很难找到问题。其实是这样的。“GotoNRDE”不是一个简单的button,click它之后其实是调用了一个javascript。然后我猜想问题是出在页面加载JS上了。因为selenium在运行的时候 ...

chnapple 发表于 2009-1-20 15:50:22

求助

各位大侠,小弟是绝对新手,刚刚接触Selenium这个工具.以下的代码是我通过IDE直接抓取的:
import com.thoughtworks.selenium.*;

public class NewTest extends SeleneseTestCase {
      public void setUp() throws Exception {
                setUp("http://change-this-to-the-site-you-are-testing/", "*chrome");
                }
      public void testNew() throws Exception {
                selenium.open("http://batlobby2.genesys.com/gcc/conferencing/partaccess.asp?ba=5");
                assertEquals("Genesys Meeting Center", selenium.getTitle());
                selenium.type("txtTLMNumber", "80014");
                selenium.type("txtTLMNumber", "80013");
                selenium.click("button1");
                selenium.waitForPageToLoad("30000");
                assertEquals("Genesys Meeting Center", selenium.getTitle());
                Thread.sleep(5000);
                selenium.select("cboCC", "label=US");
                selenium.select("cboCC", "label=FR");
                selenium.click("button1");
                selenium.waitForPageToLoad("30000");
                Thread.sleep(20000);
                assertEquals("Genesys Meeting Center", selenium.getTitle());
                selenium.type("cboAttendee", "FF2.0");
                selenium.type("txtAttEmail", "asd@asd.com");
                selenium.click("rdDialed_in");
                selenium.click("rdDial_in");
                selenium.click("rdDial_me");
                selenium.click("button1");
                Thread.sleep(5000);
                selenium.waitForPageToLoad("30000");
                assertEquals("Genesys Meeting Center", selenium.getTitle());
                selenium.select("selectCountry", "label=Canada (1)");
                selenium.select("selectCountry", "label=China (86)");
                selenium.type("txtLocalPhone", "2161352248");
                selenium.click("btnGoOrDial");
                selenium.waitForPopUp("", "30000");
                selenium.waitForPageToLoad("30000");
                assertEquals("Genesys Meeting Center", selenium.getTitle());
                Thread.sleep(120000);
                selenium.selectFrame("control");      
                selenium.click("//div[@id='toolbarbox']/table/tbody/tr/td/table/tbody/tr/td");
                selenium.click("menuItem25");
                selenium.click("//span[@id='menuBarItem1']/span");
                selenium.selectFrame("relative=up");
                selenium.selectFrame("content");
                selenium.click("YesBtn");
                selenium.click("closeBtn");
                selenium.waitForPageToLoad("30000");
                }
}
红色字的地方是回放报错的地方,说是找不到Element 'control'。
其实在运行蓝色的命令之前,都是在一个FF窗口里面的。而我们的这个客户端在点了蓝色那部的按钮之后会另外跳出个FF的窗口去Load Server上面的各种文件 包括JS文件,图片文件等,最后执行红色命令时候其实已经是在跳出的这个FF里面了。
我希望知道有什么办法能使我回放成功 能够在回放是找到红色命令里面的Frame及其之后那些Xpth里面按钮,菜单等等。
谢谢!!!

bruce.gu 发表于 2009-1-20 18:24:03

你这个问题比较棘手,尝试去 selenium的官方论坛上搜索看。关于pop up window的也是一个热门的问题。一直是没有得到很好的解决。而且每个程序的情况又有所不同。。
建议在 http://clearspace.openqa.org/ 里面搜索"pop up" 的帖子。可以搜说出来一大堆。希望你能够找到解决方案。。

原帖由 chnapple 于 2009-1-20 15:50 发表 http://bbs.51testing.com/images/common/back.gif
各位大侠,小弟是绝对新手,刚刚接触Selenium这个工具.以下的代码是我通过IDE直接抓取的:
import com.thoughtworks.selenium.*;

public class NewTest extends SeleneseTestCase {
      public void setUp( ...

fairylly 发表于 2009-2-1 17:51:55

selenium如何支持时间控件呢?
项目中有用到两种时间控件(开源的控件):
1)My97DatePicker
2)calendar
第一种控件,IDE录制的脚本为:selenium.click("//td[@onclick='day_Click(2009,1,29);']");
但执行脚本过程中,没有生效,找不到element;
第二种控件,脚本为:
selenium.type("laosiyear", "2007");//输入了年份,但确定时没有效果
selenium.select("laosimonth", "label=三月");
selenium.click("laosiday32");
只有年份没有效果,回放时,可以看到输入2007成功,但在确定那一刻,又变回当前年份2009


开源的时间控件多种多样,有没有什么好方法可以很好的支持这些控件呢?

bruce.gu 发表于 2009-2-2 14:41:13

没有,除非你自己写。

另外用ide录制下来的东西经常是不可靠的。无效的时候建议还是要从分析html,手动写脚本,然后可以到ide上面去调试你手动写的脚本对不对。

原帖由 fairylly 于 2009-2-1 17:51 发表 http://bbs.51testing.com/images/common/back.gif
selenium如何支持时间控件呢?
项目中有用到两种时间控件(开源的控件):
1)My97DatePicker
2)calendar
第一种控件,IDE录制的脚本为:selenium.click("//td[@onclick='day_Click(2009,1,29);']");
但执行脚 ...

fairylly 发表于 2009-2-3 09:06:15

自己写?
从什么方向写的?

carolinebi 发表于 2009-2-20 17:08:41

回复 14# 的帖子

“关于测试数据,很传统的,存在excel文件里面。用key-value 的方式。”能不能说的具体点,我是新手,请多帮助啊,例如测试多组用户名和密码,事先写在excel里面,应该如何操作呢,

meiliqingdao 发表于 2009-4-23 14:37:47

用JUNIT运行时出现错误!

我把代码贴出来,让高手帮我看一下!5555
package com.example.tests;

import java.util.regex.Pattern;
import com.thoughtworks.selenium.*;
import junit.framework.TestCase;


public class NewTest extends TestCase {
        public Selenium sel;
        protected void setUp() throws Exception {
                sel = new DefaultSelenium("localhost", 4444, "*Firefox", "url");
                super.setUp();
                //setUp("http://change-this-to-the-site-you-are-testing/", "*chrome");
        }
        public void testNew(){
                sel.open("http://localhost:4040/ngp/edit.htm");
                sel.click("//a");
                sel.waitForPageToLoad("30000");
                sel.click("//td/table/tbody/tr/td/div");
                sel.selectFrame("myiframe");
                sel.type("//input[@id='title-tb']", "gl");
                sel.selectFrame("relative=up");
                sel.click("//table[@id='my-123']/tbody/tr/td/span");
        }
        protected void tearDown() throws Exception {
                super.tearDown();
       }
}



package com.example.tests;

import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;
//*Firefox/usr/lib/firefox-3.0.9/firefox-bin
//*chrome
public class SeleneseTestCase {
        public static void main (String[]args){
                Selenium browser = new DefaultSelenium("localhost", 4444, "*Firefox", "url");
                browser.open("http://localhost:4040/ngp/edit.htm");
                browser.click("//a");
                browser.waitForPageToLoad("30000");
                browser.click("//td/table/tbody/tr/td/div");
                browser.selectFrame("myiframe");
                browser.type("//input[@id='title-tb']", "gl");
                browser.selectFrame("relative=up");
                browser.click("//table[@id='my-123']/tbody/tr/td/span");
                browser.waitForPageToLoad("3000");
                             String[] Link = browser.getAllLinks();//
                               System.out.println(Link.length);
                               System.out.println(browser.getTitle());
                        }
}

在运行NewTest的时候,老是出现错误.错误信息如下:
com.thoughtworks.selenium.SeleniumException: ERROR Server Exception: sessionId should not be null; has this session been started yet?
        at com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:97)
        at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:91)
        at com.thoughtworks.selenium.DefaultSelenium.open(DefaultSelenium.java:335)
        at com.example.tests.NewTest.testNew(NewTest.java:16)
        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:164)
        at junit.framework.TestCase.runBare(TestCase.java:130)
        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:120)
        at junit.framework.TestSuite.runTest(TestSuite.java:230)
        at junit.framework.TestSuite.run(TestSuite.java:225)
        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: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)

我的SERVER运行应该是正常的,SERVER截图如下:

hhhsmileyangxue 发表于 2009-5-7 12:46:53

selenium QQ群   83378466

bruce.gu 发表于 2009-5-21 17:43:31

sel.start(); 没写吧
原帖由 meiliqingdao 于 2009-4-23 14:37 发表 http://bbs.51testing.com/images/common/back.gif
我把代码贴出来,让高手帮我看一下!5555
package com.example.tests;

import java.util.regex.Pattern;
import com.thoughtworks.selenium.*;
import junit.framework.TestCase;


public class NewTest ext ...

dudufans1983 发表于 2009-6-16 15:19:27

如何用selenium写测试用例进行测试呢?

如何用selenium写测试用例进行测试呢?

dudufans1983 发表于 2009-6-16 15:22:26

如何用selenium写测试用例进行测试呢?

现在的困惑是不知道怎么开始写一段测试代码进行测试,把网上别人的例子拿来试了下感觉还不错,但是自己如果写像人家那样的测试代码该如何操作呢?

困惑中,忘高手给指点接下来的学习方向!!!

h_hoping 发表于 2009-12-15 23:06:25

楼主还在么?
最近开始使用selenium,大概1星期了,使用的是selenium RC,组长需要一个demo,基本完成了,但是遇到几个问题想向高手们请教下:
1. onload时直接window.open() ,结果无法找到pop window,我只能使用settime(window.open(),time)来设置下延时保证获取到window
2.frameset页面其中的contentframe(web程序主要操作的frame)开始=“../blank.jsp”,在js里做了一些操作后set src="./a.jsp";结果无法获取到a.jsp中的button
3. 进入主页面时是多线程的,有一些alert不能在预期捕获,请问有什么好的处理方法(我现在是注释掉这些alert)
4. window.promt(),有时无法获取到,大部分时候是可以的,但还有另外一种情况,我使用了answerOnNextPrompt,但在接下来的assertPrompt后有时候会失败,
在控制台,assertPrompt 是OK,但页面现象是跟点击了取消一样,请问下可能是什么原因造成,补充一下,我们这个promt是onload一个js中出现的,我的jar,document中说assertPrompt是无法检查onload时调用的promt的,很奇怪,我这居然可以,难道是这中间某原因造成的
5.window.promt(),如果我想点取消,可以怎么操作吗?未看到对应的api
这里面几个问题我基本都没很好的解决方法,希望高手可以指点下,谢谢

lbsnothing 发表于 2011-5-30 13:12:24

楼主,我现在了解一些selenium基础。譬如selenium IDE录制脚本,命令,xpath,firebug。能进行一些基本的login in, search,register, 这些基础测试脚本。但是不知道这些是否能够用到做项目中。 脚本执行时,经常报错,time outed 30000ms,试过将时间改长,没啥作用。总体学下来,感觉还学得不够,但不知道该如何改进,期望能得到指点。谢谢。

iriskudo 发表于 2011-10-8 14:24:02

感谢楼主

chen6_9 发表于 2012-3-7 09:35:35

学习一下~

br1823 发表于 2012-3-14 13:16:01

楼主已经不更新了啊!!不要太监啊!

pcxty 发表于 2013-3-27 10:03:20

收藏了,谢谢

沈估京 发表于 2013-4-22 20:48:35

没想到捐房子的事情弄得沸沸扬扬,其实我很想找机会把这件事从头到尾讲一讲,因为是个很有趣的故事,只是三言两语说不完,要找合适的机会坐下来细细说。不过有些话可以干脆利落地讲,请你们放心,成龙不会做犯法的事,更不会做对不起民族的事。在此一并谢过大家的关心。
    ——昨日,成龙在微博上对“捐楼”事件的最新回应
    据新华社电 一向以爱国形象示人的香港演员成龙日前连发4条微博,表示打算将自己20年前购买的十栋安徽古建筑中的四栋,捐赠给新加坡一所高校。一时间,网络上争议四起。
    暂无法确定是否为文物
    安徽省文物局文物保护处处长张宏明表示,徽派建筑多集中在以安徽省黄山、宣城以及江西婺源县等地,成龙目前发布的信息无法确定他所说的“古建筑”来自何地以及是否属于文物,“如果这些古建筑是文物,按照现行法规是不允许流出国门的”。
    一位文物专家却表示,成龙所购建筑有可能是文物。早些年,政府财政拿不出钱保护,对于应列为文保单位的古民居,区县一级也不敢将它们全部列入,有些区县甚至将已经列为文保单位的古民居从保护名录中取消,因为一旦列为保护单位,政府就应承担相应的维护责任。
页: 1 2 3 4 5 [6]
查看完整版本: Selenium 连续记录【有啥问题可以在这里问,一起讨论】