2012-07-16 120 views
0

我需要拍摄网页快照,并且为此我使用了selenium RC(这是个不错的选择吗?)和eclipse for java语言。我使用它作为JUnit测试用例。这是我的代码。在java中使用selenium服务器拍摄网页快照

package com.example.tests; 

import com.thoughtworks.selenium.*; 
import org.junit.After; 
import org.junit.Before; 
import org.junit.Test; 
import java.util.regex.Pattern; 

@SuppressWarnings("deprecation") 
public class mainClassTest extends SeleneseTestCase { 
    @Before 
    public void setUp() throws Exception { 
     selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://www.gmail.com/"); 
     //water= new DefaultSelenium("localhost", 4444, "*firefox", "http://www.gmail.com/"); 
     selenium.start(); 

    } 

    @Test 
    public void testFinalSelenium() throws Exception { 


     selenium.windowMaximize(); 

     selenium.open("/"); 
     selenium.waitForPageToLoad("30000"); 


     System.out.println("laoded\n"); 
    // selenium.wait(); 
     selenium.captureScreenshot("C:\\test\\simpleQuora.png"); 
     selenium.captureEntirePageScreenshot("C:\\test\\CompleteQuora.png", ""); 
    } 

    @After 
    public void tearDown() throws Exception { 

     selenium.stop(); 

    } 


} 

它的工作正常,但如果我必须拍摄多个URL的快照,那么有什么办法做到这一点? 我们可以做到这一点,而不用它作为JUnit测试用例并在主函数中使用硒?

因为如果我尝试运行这段代码:

package com.example.tests; 

import com.thoughtworks.selenium.DefaultSelenium; 
import com.thoughtworks.selenium.Selenium; 

public class MainClass { 


    void func(String url, String file) 
    { 
     Selenium selenium = new DefaultSelenium("localhost", 4444, "*firefox", url); 
     selenium.start(); 

     selenium.windowMaximize(); 

     selenium.open("/"); 
     selenium.waitForPageToLoad("30000"); 


     System.out.println("laoded\n"); 
    // selenium.wait(); 
     String file1= "C:\\test\\"+file+".png"; 
     String file2= "C:\\test\\"+file+"2.png"; 
     selenium.captureScreenshot(file1); 
     selenium.captureEntirePageScreenshot(file2, ""); 

     selenium.stop(); 

    } 


    public static void main(String[] args) 
    { 

     MainClass demo = new MainClass(); 

     demo.func("www.facebook.com","face"); 

     //demo.func("www.reddit.com","reddit"); 

    } 
} 

this error(虽然我已经从CMD启动服务器)。

+0

更好更新的webdriver而是采用老技术 – 2012-07-16 11:50:15

回答

1
demo.func("www.facebook.com","face"); 

变化

demo.func("http://www.facebook.com","face"); 
+0

喔,是我不好。 谢谢,它现在正在工作。 – Amit 2012-07-16 11:23:16