当前位置: 首页 > 知识库问答 >
问题:

在Java中设置Selenium ChromeDriver,以便在Mac上进行远程测试

曾高杰
2023-03-14

我正在尝试在eclipse/java中创建一个用于selenium测试的项目。

我在windows机器上做这件事,这也是我的selenium网格中心。

我想在一台远程机器上运行我的测试,那就是mac。

在我的项目中,当我这样设置webdriver时:

System.setProperty("webdriver.chromeDriver.driver",
                    "C:\\SeleniumGrid\\chromeDriver\\chromedriver.exe"

那条路径应该指向我的遥控器/mac上的chromedriver,对吗?

mac已经安装了chrome。我在这台机器上找到了chrome驱动程序:/应用程序/Google\Chrome.app/Contents/MacOS/Google\Chrome

但当我这样设置时:

    System.setProperty("webdriver.chromeDriver.driver",
            "/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome");
    ChromeOptions options = new ChromeOptions();
    cap.setCapability(ChromeOptions.CAPABILITY, options);
    cap = DesiredCapabilities.chrome();
    cap.setBrowserName("chrome");
    cap.setPlatform(Platform.MAC);
    cap.setJavascriptEnabled(true);
    newDriver = new RemoteWebDriver(new URL(
            "http://999.999.9.99:9999/wd/hub"), cap);

我在这一行得到一个空指针异常:

cap.setCapability(ChromeOptions.CAPABILITY, options);

不知道我做错了什么。对不起,我是硒的新手。任何想法都将不胜感激。

编辑:这是stacktrace

[TestNG] Running:

[ThreadUtil] Starting executor timeOut:2147483647ms workers:1 threadPoolSize:3
FAILED CONFIGURATION: @BeforeClass setUp("chrome")
java.lang.NullPointerException
    at selenium.helper.WebUtils.setUpRemoteDriver(WebUtils.java:74)
    at selenium.testNG.TestNikeCareerSearch.setUp(TestNikeCareerSearch.java:23)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
    at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:175)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:107)
    at org.testng.TestRunner.privateRun(TestRunner.java:767)
    at org.testng.TestRunner.run(TestRunner.java:617)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
    at org.testng.SuiteRunner.access$0(SuiteRunner.java:333)
    at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
    at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

SKIPPED CONFIGURATION: @AfterClass tearDown

共有1个答案

公良奇
2023-03-14

声明

System.setProperty("webdriver.chromeDriver.driver",
"C:\\SeleniumGrid\\chromeDriver\\chromedriver.exe") 

将在集线器或代码所在的计算机上运行。因此,属性将在该计算机上设置,而不是在远程计算机上设置。

您可以添加语句-Dwebdriver。铬。driver=“pathtochromedriverinnode”在mac机器中启动webdriver节点时。比如:

java -jar seleniumserver.jar -role wd -hub http://hubip:port/grid/register -Dwebdriver.chrome.driver="pathtochromedriverinnode"
 类似资料:
  • 任何想法/暗示都非常受欢迎;谢了!

  • 我有一个在Chrome-Mac机器上运行自动化脚本的要求

  • 问题内容: 我在Appium面临的问题是我在下面决定的。不使用SUDO,我找不到安装Appium所需组件的方法。用SUDO安装所有组件之后,然后尝试运行Appium,我得到了错误,应该在没有SUDO的情况下安装Appium和NODE。尝试在线搜索解决方案花了我一段时间,因为在使用JAVA开发测试时,几乎没有在线教程可供Appium在MAC上运行。以下是有关如何在Mac OS上设置Appium以及如

  • 问题内容: 我正在使用Java 1.6为Mac编写Java Swing应用程序。我阅读了许多教程,它们逐步引导您如何更好地将Java应用程序与OS X集成在一起,但是有一件事我还没有开始工作。我无法显示应用程序名称(Mac菜单栏中的第一个粗体菜单项)。默认情况下,显示主类的全限定类名,但我无法更改它。 该站点说您必须设置以下属性: 但这不起作用(我正在运行10.6,所以也许属性名称已更改?)。 当

  • 如何配置Spring Boot应用程序,以便在运行单元测试时使用嵌入式SQL Server,从而可以执行存储过程?

  • 问题内容: 我正在运行带有多个Chrome实例的selenium网格。selenium网格是2个带有多个节点的机器(窗口)。测试是从连接到网格的另一台机器执行的。为了能够使用远程调试功能,我需要从正在执行的计算机(可以读取会话主机和驱动程序debugUrl)连接到其他计算机,最后是chrome实例。 但是chrome拒绝localhost以外的任何东西。 我只能找到解决方案,当人们只有一个实例时,