bruce.gu 发表于 2008-12-22 09:44:37

好久没更新了,帖子沉的好快呀。自己顶一下:lol :lol :lol :lol :lol

okle 发表于 2008-12-23 09:15:28

问个问题

selenium是如何捕捉弹出窗口的?
PS,该弹出窗口没有id和name属性。。

bruce.gu 发表于 2008-12-24 09:22:56

这个问题在openQA 论坛上也很热门的。经常有人问。
如果你的这个弹出窗口是有一个link产生的话,比较容易解决,简单的说一下步骤。。
1.selenium.openWindow("_blank","winid"); //开一个空的弹出窗口。
2.然后修改那个link的 target 属性为"winid"
3.然后click 这个link

不知道够不够详细。



原帖由 okle 于 2008-12-23 09:15 发表 http://bbs.51testing.com/images/common/back.gif
selenium是如何捕捉弹出窗口的?
PS,该弹出窗口没有id和name属性。。

alextowxm 发表于 2008-12-29 15:01:24

我有一个 关于 selenium rc 的问题
现在我自己在研究 seleniu rc 但是找了一段时间的资料 但是没有找到 如何运行 selenium-php-client-driver-1.0-beta-1 中的实例
不知道你那是不是用一些关于 seleniu rc 等等学习资料 可供参考呢

bruce.gu 发表于 2008-12-29 17:18:24

open source 的东西少的就是资料。我主要还是泡在openqa的论坛上。
另外我用的是java client
原帖由 alextowxm 于 2008-12-29 15:01 发表 http://bbs.51testing.com/images/common/back.gif
我有一个 关于 selenium rc 的问题
现在我自己在研究 seleniu rc 但是找了一段时间的资料 但是没有找到 如何运行 selenium-php-client-driver-1.0-beta-1 中的实例
不知道你那是不是用一些关于 seleniu rc 等等学 ...

bruce.gu 发表于 2009-1-4 10:49:21

2009年了。接触selenium 断断续续已经一年半多了。今年继续。

10885 发表于 2009-1-6 11:06:03

我是新手 顶下先

nosedive 发表于 2009-1-7 15:36:43

楼主,请教你一个入门级的问题。我用selenium+eclipse+Junit.用selenuimIDE录好脚本,在eclipse里建好工程,项目属性中引入selenium-java-client.jar selenium-java-client-driver-sources.jar和selenium-java-client-driver-tests.jar,以及Junit3.8.1
然后把脚本写到项目里,启动selenium-server,运行脚本,结果会出现这样的错误:
com.thoughtworks.selenium.SelenuimException:ERROR Server Exception:sessionID should not be null;has this session been started?
at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java
at com.thoughtworks.selenium.DefaultSelenium.setContext(DefaultSelenium.java)
这是哪里出了问题?谢谢!

nosedive 发表于 2009-1-7 15:40:04

我把错误都贴出来:
com.thoughtworks.selenium.SeleniumException: ERROR Server Exception: sessionId should not be null; has this session been started yet?
        at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:73)
        at com.thoughtworks.selenium.DefaultSelenium.setContext(DefaultSelenium.java:574)
        at com.thoughtworks.selenium.SeleneseTestCase.setUp(SeleneseTestCase.java:126)
        at test56.test56.setUp(test56.java:8)
        at junit.framework.TestCase.runBare(TestCase.java:125)
        at com.thoughtworks.selenium.SeleneseTestCase.runBare(SeleneseTestCase.java:71)
        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)

bruce.gu 发表于 2009-1-8 09:42:23

selenium server 开了没?

其实只需要导入 selenium-java-client.jar

原帖由 nosedive 于 2009-1-7 15:36 发表 http://bbs.51testing.com/images/common/back.gif
楼主,请教你一个入门级的问题。我用selenium+eclipse+Junit.用selenuimIDE录好脚本,在eclipse里建好工程,项目属性中引入selenium-java-client.jar selenium-java-client-driver-sources.jar和selenium-java-clien ...

nosedive 发表于 2009-1-8 10:28:28

server开了,确实只用导入selenium-java-client-driver.jar的,我是病急乱投医,不过还是不行

bruce.gu 发表于 2009-1-8 12:41:16

代码贴上来看看。
原帖由 nosedive 于 2009-1-8 10:28 发表 http://bbs.51testing.com/images/common/back.gif
server开了,确实只用导入selenium-java-client-driver.jar的,我是病急乱投医,不过还是不行

snnylip 发表于 2009-1-8 13:56:54

你的错误证明你的sever根本没开起来!

nosedive 发表于 2009-1-8 14:11:01

import junit.framework.TestCase;
import com.thoughtworks.selenium.*;
public class Test extends TestCase {
    private Selenium selenium;

    public void setUp() throws Exception {
      String url = "http://www.google.com";
      selenium = new DefaultSelenium("localhost", 4444, "*firefox", url);//4444 is default server port
      selenium.start();      
    }

    protected void tearDown() throws Exception {
//      selenium.stop();
    }

    public void testGoogle() throws Throwable {
      selenium.open("http://www.google.com/webhp?hl=en");
      assertEquals("Google", selenium.getTitle());
      selenium.type("q", "Selenium OpenQA");
      assertEquals("Selenium OpenQA", selenium.getValue("q"));
      selenium.click("btnG");
      selenium.waitForPageToLoad("5000");
      assertEquals("Selenium OpenQA - Google Search", selenium.getTitle());
    }
}
这个脚本在别人的机器上跑是正常的,所以我想应该脚本没有什么问题

gchao 发表于 2009-1-8 14:31:39

大家好,我刚刚用selenium IDE 出现了些问题,也是关于网页加载的问题,我一般都是在每个click前门加 wait for element present 这条命令,但是对有些按键似乎不管用,所以我加了pause 这个命令,来延长等待时间,但是我发现,我做的脚本文件在我的电脑上运行可以,但是换台电脑就会出现问题,我测试的网页是Ajax技术的,所以加载网页就会出现问题,关键是加pause这个命令,不清楚具体的等待时间,所以我想用wait for value ,或者 wait for condition 这样的命令,但是具体的格式并不是很清楚,网上也查了,不是很清楚wait for value 这个命令中patten 应该写些什么东西,对于wait for condition 这个命令中的script不是很了解,关键我刚刚毕业,而且本科不是学计算机专业的,没有接触过javascript ,各位大侠可以给我举个例子吗,例如我想等待一个id为OKButton__Button 的按键 ,wait for condition 和 wait for value这两个命令具体该怎么写,多谢!

bruce.gu 发表于 2009-1-8 14:59:21

把你下面这段代码里的 "localhost" 改成别人运行正常的机器名。然后运行试试。

selenium = new DefaultSelenium("localhost", 4444, "*firefox", url);//4444 is default server port

如果可以跑说明你 selenium server 有问题。


原帖由 nosedive 于 2009-1-8 14:11 发表 http://bbs.51testing.com/images/common/back.gif
import junit.framework.TestCase;
import com.thoughtworks.selenium.*;
public class Test extends TestCase {
    private Selenium selenium;

    public void setUp() throws Exception {
      Strin ...

bruce.gu 发表于 2009-1-8 15:04:44

回复 55# 的帖子

一般用的较多的是wait for present,
一个wait for visible 的例子。/**Wait for element to be visible within time out.
      * @param sLocator element's locator
      * @param timeout time out
      */
   public void waitForVisible(String sLocator, int timeout){
         log.info("Wait for "+sElementType+" visible");
         for(int i=0;;i++){
            if(i>=timeout){
                try{
                  org.testng.Assert.fail("Wait for "+sElementType+" visible, Failed/Timeout @ "+sLocator);
                  }catch(AssertionError er){
                        log.error("Wait for "+sElementType+" visible, Failed/Timeout @ "+sLocator);
                        captureScreenshot();   
                        throw er;
                        }
                  }
            try {
                if (sel.isVisible(sLocator)){
                  log.info("Wait for "+sElementType+" visible,OK");
                  break;
                  }
                } catch (Exception e) {}
            try {
                Thread.sleep(1000);
                } catch (InterruptedException e) {
                  e.printStackTrace();
                  }
                }
         }

和一个wait for value 例子
public boolean waitForValueToPresent(String value,int timeout){
      log.info(this.sElementType + " waitForValueToPresent");
                while(true){
                        if(timeout<0){
                                return false;
                                }
                        timeout--;
                        if(this.sel.getValue(this.sElementPath).equals(value)){
                                return true;
                                }else{
                                        try{
                                                Thread.sleep(1000);
                                                }catch(Exception e){
                                                        e.printStackTrace();
                                                        }
                                                }
                        }
                }

nosedive 发表于 2009-1-8 15:47:20

谢谢楼上,问题解决了,出在两个地方。
1。我的脚本用的firefox,换成ie就可以了。听同事说这是selenium的一个BUG,如何解决我再研究下之后发上来
2.我用IE跑的时候出现了404页面无法打开的问题,设置了IE就可以了。

终于完成了搭建的第一步,以后和大家一起学习selenium,这个帖子真好,有啥问题都在这里讨论了!

snnylip 发表于 2009-1-8 15:58:19

回复 55# 的帖子

我一般用waitForPageToLoad

gchao 发表于 2009-1-8 16:08:28

回复 57# 的帖子

很感谢bruce的回答,但是目前来讲,我现在只是刚刚接触到selenium IDE 这个软件,还没有涉及到编程方面的知识,而且现在来说问题主要是关于想找个一个可以取代pause的命令,网上看了一下waitforvalue这个命令可以,waitForValue(locator, pattern) ,但是是不是这个命令只有输入字符的时候可以使用,对于等待按键来说使用不了?谢谢
页: 1 2 [3] 4 5 6
查看完整版本: Selenium 连续记录【有啥问题可以在这里问,一起讨论】