2012-10-11 13 views
9

Tôi có selenium-server-standalone.jar đang chạy trên máy cục bộ của mình và các thử nghiệm tôi muốn chạy được biên dịch trên máy từ xa của mình, nhưng tôi không biết làm cách nào để thử nghiệm kết nối với máy sẽ chạy trình duyệt. Bất kỳ trợ giúp nào được đánh giá cao.Selenium Webdriver cài đặt từ xa

Cập nhật: Trên máy tính địa phương của tôi (một trong những tôi sẽ chạy trình duyệt trên) Tôi chạy

java -jar selenium-server-standalone-2.25.0.jar -mode hub 

trên máy tính từ xa của tôi (mà tôi sẽ chạy thử nghiệm từ) Tôi chạy

java -jar selenium-server-standalone-2.25.0.jar -role webDriver -hub http://**My ip*:4444 

mã của tôi chứa sau:

@Before 
    public void setUp() throws Exception { 
      DesiredCapabilities capability = DesiredCapabilities.firefox(); 
      driver = new RemoteWebDriver(new URL("http://**My ip**:4444/wd/hub"), 
      capability); 
      baseUrl = "http://phy05:8080"; 
      driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
      driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); 
      driver.manage().window().setSize(new Dimension(1920, 1080)); 

tôi đang sử dụng Linux và t của tôi ests được viết bằng Java

+0

Bài kiểm tra selen của bạn được viết bằng ngôn ngữ nào? –

+0

Bài kiểm tra của tôi được viết bằng java – confusified

+1

Tôi sẽ không khuyên bạn nên thay đổi hàm implicitWait. Để nó ở mặc định là 0 sẽ cho bạn nhiều hành vi điển hình hơn. Hầu hết mọi người thực hiện một FluentWait như WebDriverWait để cung cấp cho bạn thời gian chờ đợi biến dài hơn. Tránh thay đổi nó thành '20' giây. – djangofan

Trả lời

7

. Đó không phải là một vấn đề. Tôi muốn chia sẻ cách tôi giải quyết vấn đề này. Tôi nhận được VM (máy ảo) có cài đặt jdk và máy chủ selenium chạy trên máy ảo. VM có IP: 192.168.4.52 Tôi kết nối với nó qua (kết nối RDC-máy tính để bàn từ xa). Đã cài đặt trình duyệt cần thiết trên nó (firefox 15). Mở trình duyệt. Đã tắt tất cả các cập nhật và các cửa sổ bật lên khác.

Tôi đã kiểm tra selenium trên máy cục bộ của mình. Và tôi chạy chúng trên máy ảo của tôi. Thiết lập Selenium như sau:

import com.google.common.base.Function; 
import com.thoughtworks.selenium.SeleneseTestBase; 
import junit.framework.Assert; 
import org.junit.AfterClass; 
import org.junit.Before; 
import org.junit.BeforeClass; 
import org.openqa.selenium.*; 
import org.openqa.selenium.remote.DesiredCapabilities; 
import org.openqa.selenium.remote.RemoteWebDriver; 
import org.openqa.selenium.support.ui.FluentWait; 
import org.openqa.selenium.support.ui.Wait; 
import org.springframework.beans.factory.annotation.Value; 
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; 
import org.springframework.core.io.support.PropertiesLoaderUtils; 

import java.io.IOException; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.util.NoSuchElementException; 
import java.util.Properties; 
import java.util.concurrent.TimeUnit; 


public class BaseSeleniumTest extends SeleneseTestBase { 
    static WebDriver driver; 


    @Value("login.base.url") 
    private String loginBaseUrl; 

    @BeforeClass 
    public static void firefoxSetUp() throws MalformedURLException { 

//  DesiredCapabilities capability = DesiredCapabilities.firefox(); 
     DesiredCapabilities capability = DesiredCapabilities.internetExplorer(); 

     driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability); 


//  driver = new FirefoxDriver(); //for local check 

     driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
     driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); 
     driver.manage().window().setSize(new Dimension(1920, 1080)); 
    } 
    @Before 
    public void openFiretox() throws IOException { 



     driver.get(propertyKeysLoader("login.base.url")); 


    } 


    @AfterClass 
    public static void closeFirefox(){ 
     driver.quit(); 
    } 

..... 

đoạn mã này sẽ chạy tất cả các kiểm tra selen trên máy từ xa. trong chuỗi driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability); bạn chỉ cần đề cập đến IP của máy của bạn và thao tác này sẽ hoạt động.

Hy vọng điều này sẽ giúp bạn.

+0

Vì vậy, máy chủ seleniuim có chạy trên máy bằng trình duyệt hoặc máy chủ có thử nghiệm không? Các bài kiểm tra của tôi được chạy từ dòng lệnh trên máy mà tôi ssh vào, và trình duyệt của tôi nằm trên máy cục bộ – confusified

+1

trong cách tiếp cận của tôi (trên dự án hiện tại) máy chủ selenium chạy trên máy ảo (máy từ xa) và trình duyệt trên máy ảo (remote) máy). Kiểm tra thiết lập là trên máy địa phương của tôi nhưng tôi sẽ cam kết nó vào kho, thêm nhiệm vụ để Hudson-jenkins để đưa chúng từ kho lưu trữ và chạy từ xa. Kính trọng –

+0

Bạn có thể thực hiện việc này bằng cách sử dụng vùng chứa docker cho trình duyệt Chrome. Tham khảo http://underthehood.meltwater.com/blog/2016/11/09/using-docker-with-selenium-server-to-run-your-browser-tests/ và https://github.com/SeleniumHQ/docker-selenium – vikramvi