原帖由 nosedive 于 2009-1-19 17:30 发表 http://bbs.51testing.com/images/common/back.gif
问题解决了,我之前写的不清楚,估计很难找到问题。其实是这样的。“GotoNRDE”不是一个简单的button,click它之后其实是调用了一个javascript。然后我猜想问题是出在页面加载JS上了。因为selenium在运行的时候 ...
求助
各位大侠,小弟是绝对新手,刚刚接触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里面按钮,菜单等等。
谢谢!!! 你这个问题比较棘手,尝试去 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( ... 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
开源的时间控件多种多样,有没有什么好方法可以很好的支持这些控件呢? 没有,除非你自己写。
另外用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);']");
但执行脚 ... 自己写?
从什么方向写的?
回复 14# 的帖子
“关于测试数据,很传统的,存在excel文件里面。用key-value 的方式。”能不能说的具体点,我是新手,请多帮助啊,例如测试多组用户名和密码,事先写在excel里面,应该如何操作呢,用JUNIT运行时出现错误!
我把代码贴出来,让高手帮我看一下!5555package 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截图如下:
selenium QQ群 83378466 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 ...
如何用selenium写测试用例进行测试呢?
如何用selenium写测试用例进行测试呢?如何用selenium写测试用例进行测试呢?
现在的困惑是不知道怎么开始写一段测试代码进行测试,把网上别人的例子拿来试了下感觉还不错,但是自己如果写像人家那样的测试代码该如何操作呢?困惑中,忘高手给指点接下来的学习方向!!! 楼主还在么?
最近开始使用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
这里面几个问题我基本都没很好的解决方法,希望高手可以指点下,谢谢 楼主,我现在了解一些selenium基础。譬如selenium IDE录制脚本,命令,xpath,firebug。能进行一些基本的login in, search,register, 这些基础测试脚本。但是不知道这些是否能够用到做项目中。 脚本执行时,经常报错,time outed 30000ms,试过将时间改长,没啥作用。总体学下来,感觉还学得不够,但不知道该如何改进,期望能得到指点。谢谢。 感谢楼主 学习一下~ 楼主已经不更新了啊!!不要太监啊! 收藏了,谢谢 没想到捐房子的事情弄得沸沸扬扬,其实我很想找机会把这件事从头到尾讲一讲,因为是个很有趣的故事,只是三言两语说不完,要找合适的机会坐下来细细说。不过有些话可以干脆利落地讲,请你们放心,成龙不会做犯法的事,更不会做对不起民族的事。在此一并谢过大家的关心。
——昨日,成龙在微博上对“捐楼”事件的最新回应
据新华社电 一向以爱国形象示人的香港演员成龙日前连发4条微博,表示打算将自己20年前购买的十栋安徽古建筑中的四栋,捐赠给新加坡一所高校。一时间,网络上争议四起。
暂无法确定是否为文物
安徽省文物局文物保护处处长张宏明表示,徽派建筑多集中在以安徽省黄山、宣城以及江西婺源县等地,成龙目前发布的信息无法确定他所说的“古建筑”来自何地以及是否属于文物,“如果这些古建筑是文物,按照现行法规是不允许流出国门的”。
一位文物专家却表示,成龙所购建筑有可能是文物。早些年,政府财政拿不出钱保护,对于应列为文保单位的古民居,区县一级也不敢将它们全部列入,有些区县甚至将已经列为文保单位的古民居从保护名录中取消,因为一旦列为保护单位,政府就应承担相应的维护责任。