13

selenium-server-standalone.jar をローカル マシンで実行しており、実行したいテストをリモート マシンでコンパイルしましたが、ブラウザを実行するマシンにテストを接続する方法がわかりません。どんな助けでも感謝します。

更新:ローカルマシン(ブラウザを実行するマシン)で実行しました

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

リモートマシン(テストを実行するマシン)で実行しました

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

私のコードには以下が含まれています:

 @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));

私は Linux を使用しており、私のテストは Java で書かれています

4

1 に答える 1

10

良い。それは問題ではありません。この問題をどのように解決したかを共有したいと思います。jdkがインストールされ、VMで実行されているセレンサーバーを備えたVM(仮想マシン)を取得しました。VM の IP は 192.168.4.52 です (RDC リモート デスクトップ接続)。必要なブラウザをインストールしました(firefox 15)。ブラウザを開きます。すべての更新とその他のポップアップを無効にしました。

ローカル マシンに Selenium テスト パックがあります。そして、それらを VM で実行します。セレンのセットアップは次のとおりです。

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();
    }

.....

このコードは、リモート マシンですべてのセレン テストを実行します。文字列driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability); では、マシンの IP に言及するだけで、これは機能するはずです。

これがお役に立てば幸いです。

于 2012-10-11T10:26:59.960 に答える