我在我的本地机器上运行了 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 编写的
最佳答案
嗯。那不是问题。我想分享一下我是如何解决这个问题的。 我得到了安装了 jdk 的 VM(虚拟机)和在 VM 上运行的 selenium 服务器。虚拟机有IP: 192.168.4.52 我通过(RDC-远程桌面连接)连接到它。在其上安装所需的浏览器(firefox 15)。打开浏览器。禁用所有更新和其他弹出窗口。
我的本地机器上有 selenium 测试包。我在我的虚拟机上运行它们。 Selenium 设置如下:
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();
}
.....
这段代码将在远程机器上运行所有的 selenium 测试。
在字符串 driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability);
您只需提及您机器的 IP,这应该可以工作。
希望对你有帮助。
关于java - Selenium Webdriver 远程设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12836114/