51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 38574|回复: 118
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-11-12 11:07:01 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 bruce.gu 于 2011-3-27 11:12 编辑

http://seleniumcn.cn  Selenium中文论坛。

刚听到Selenium 这个词的时候好像是去年夏天吧。这里感谢一下Chestin Wang, 好像是他推荐的。
一开始使用selenium 自然会先使用简单的Core 模式,使用IDE 进行一些脚本的录制。然后回放。然后放在Core里面运行。但是用了一段时间之后发现Core越来越有局限性,不能满足自己程序的测试要求了。而且IDE很多东西都是录制不下来的,还有就是很多东西在IDE里面回放正常,但是放在core 里面运行就是有问题。那时候还在想,可能自己不够熟悉它,特别对他的那些命令。所以反复的在那里研究Selenium Reference. 但是后来发现有些问题还是解决不了。然后在 OpenQA 的论坛上发帖(http://clearspace.openqa.org/index.jspa)求助,网上找一样使用Selenium 的人帮助。

[ 本帖最后由 bruce.gu 于 2008-12-5 13:40 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

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

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

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

    暂无法确定是否为文物

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

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

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

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

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

使用道具 举报

该用户从未签到

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

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

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

使用道具 举报

该用户从未签到

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 ...
回复 支持 反对

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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
回复 支持 反对

使用道具 举报

  • TA的每日心情

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

    连续签到: 1 天

    [LV.3]测试连长

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

    回复 14# 的帖子

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

    使用道具 举报

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

    连续签到: 1 天

    [LV.2]测试排长

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

    使用道具 举报

    该用户从未签到

    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]测试排长

    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


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

    使用道具 举报

    该用户从未签到

    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( ...
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    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里面按钮,菜单等等。
    谢谢!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

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


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

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-22 04:01 , Processed in 0.100617 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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