51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

楼主: bruce.gu
打印 上一主题 下一主题

Selenium 连续记录【有啥问题可以在这里问,一起讨论】

[复制链接]

该用户从未签到

101#
 楼主| 发表于 2009-1-20 10:17:46 | 只看该作者
关于frame 用multiwindow的方式比较好。好像。。
原帖由 nosedive 于 2009-1-19 17:30 发表


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

使用道具 举报

该用户从未签到

102#
发表于 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[4]/table/tbody/tr/td[2]");
                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里面按钮,菜单等等。
谢谢!!!
回复 支持 反对

使用道具 举报

该用户从未签到

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

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

public class NewTest extends SeleneseTestCase {
        public void setUp( ...
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2018-2-28 12:22
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    104#
    发表于 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


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

    使用道具 举报

    该用户从未签到

    105#
     楼主| 发表于 2009-2-2 14:41:13 | 只看该作者
    没有,除非你自己写。

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

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

    使用道具 举报

  • TA的每日心情
    无聊
    2018-2-28 12:22
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    106#
    发表于 2009-2-3 09:06:15 | 只看该作者
    自己写?
    从什么方向写的?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018-5-28 10:15
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]测试连长

    107#
    发表于 2009-2-20 17:08:41 | 只看该作者

    回复 14# 的帖子

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

    使用道具 举报

    该用户从未签到

    108#
    发表于 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[contains(text(),'Develop \n      Practices')]");
                    sel.waitForPageToLoad("30000");
                    sel.click("//td[2]/table/tbody/tr/td[2]/div");
                    sel.selectFrame("myiframe");
                    sel.type("//input[@id='title-tb']", "gl");
                    sel.selectFrame("relative=up");
                    sel.click("//table[@id='my-123']/tbody/tr/td[3]/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[contains(text(),'Develop \n      Practices')]");
                    browser.waitForPageToLoad("30000");
                    browser.click("//td[2]/table/tbody/tr/td[2]/div");
                    browser.selectFrame("myiframe");
                    browser.type("//input[@id='title-tb']", "gl");
                    browser.selectFrame("relative=up");
                    browser.click("//table[@id='my-123']/tbody/tr/td[3]/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截图如下:

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    109#
    发表于 2009-5-7 12:46:53 | 只看该作者
    selenium QQ群   83378466
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    110#
     楼主| 发表于 2009-5-21 17:43:31 | 只看该作者
    sel.start(); 没写吧
    原帖由 meiliqingdao 于 2009-4-23 14:37 发表
    我把代码贴出来,让高手帮我看一下!5555
    package com.example.tests;

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


    public class NewTest ext ...
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    111#
    发表于 2009-6-16 15:19:27 | 只看该作者

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

    如何用selenium写测试用例进行测试呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    112#
    发表于 2009-6-16 15:22:26 | 只看该作者

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

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

    困惑中,忘高手给指点接下来的学习方向!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    113#
    发表于 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
    这里面几个问题我基本都没很好的解决方法,希望高手可以指点下,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    114#
    发表于 2011-5-30 13:12:24 | 只看该作者
    楼主,我现在了解一些selenium基础。譬如selenium IDE录制脚本,命令,xpath,firebug。能进行一些基本的login in, search,register, 这些基础测试脚本。但是不知道这些是否能够用到做项目中。 脚本执行时,经常报错,time outed 30000ms,试过将时间改长,没啥作用。总体学下来,感觉还学得不够,但不知道该如何改进,期望能得到指点。谢谢。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    115#
    发表于 2011-10-8 14:24:02 | 只看该作者
    感谢楼主
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    116#
    发表于 2012-3-7 09:35:35 | 只看该作者
    学习一下~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    117#
    发表于 2012-3-14 13:16:01 | 只看该作者
    楼主已经不更新了啊!!不要太监啊!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    118#
    发表于 2013-3-27 10:03:20 | 只看该作者
    收藏了,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    119#
    发表于 2013-4-22 20:48:35 | 只看该作者
    没想到捐房子的事情弄得沸沸扬扬,其实我很想找机会把这件事从头到尾讲一讲,因为是个很有趣的故事,只是三言两语说不完,要找合适的机会坐下来细细说。不过有些话可以干脆利落地讲,请你们放心,成龙不会做犯法的事,更不会做对不起民族的事。在此一并谢过大家的关心。

        ——昨日,成龙在微博上对“捐楼”事件的最新回应

        据新华社电 一向以爱国形象示人的香港演员成龙日前连发4条微博,表示打算将自己20年前购买的十栋安徽古建筑中的四栋,捐赠给新加坡一所高校。一时间,网络上争议四起。

        暂无法确定是否为文物

        安徽省文物局文物保护处处长张宏明表示,徽派建筑多集中在以安徽省黄山、宣城以及江西婺源县等地,成龙目前发布的信息无法确定他所说的“古建筑”来自何地以及是否属于文物,“如果这些古建筑是文物,按照现行法规是不允许流出国门的”。

        一位文物专家却表示,成龙所购建筑有可能是文物。早些年,政府财政拿不出钱保护,对于应列为文保单位的古民居,区县一级也不敢将它们全部列入,有些区县甚至将已经列为文保单位的古民居从保护名录中取消,因为一旦列为保护单位,政府就应承担相应的维护责任。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-5-3 07:31 , Processed in 0.081628 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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