有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在windows server 2019上运行selenium测试时,基于java Chromium的浏览器崩溃

我尝试在运行windows server 2019数据中心的远程系统上执行一组selenium/java测试

这些测试在我的本地机器(Windows 10)上运行良好,但在服务器上,我在基于chromium的浏览器中运行测试时遇到问题。 当我尝试在Chrome或Edge中运行时,浏览器会启动,但屏幕保持空白,选项卡上的图标表示浏览器已崩溃。 尝试在firefox上运行时,没有任何问题

我正在使用带有以下简化脚本的chrome进行调试,该脚本可以在本地所有浏览器和使用firefox的服务器上正常运行:

package tests;

import lib.BrowserFactory;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class ChromeTest {

@Test
public void test1() {
    //WebDriver driver = BrowserFactory.createBrowser(BrowserFactory.Browser.CHROME);

    System.setProperty("webdriver.chrome.driver", "C:\\ChromeDriver\\chromedriver.exe");
    WebDriver driver=new ChromeDriver();

    driver.get("example.com");

    }

}

我通常通过browserfactory获取浏览器驱动程序,browserfactory使用“webdrivermanager”获取browserdriver,但为了调试,我尝试直接链接到browserdriver,这会产生相同的结果

当浏览器崩溃时,我会在大约一分钟后得到以下stacktrace:

Starting ChromeDriver 91.0.4472.101 (af52a90bf87030dd1523486a1cd3ae25c5d76c9b-refs/branch- 
heads/4472@{#1462}) on port 60505
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on 
keeping ChromeDriver safe.
ChromeDriver was started successfully.
org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 
500. Message: unknown error: unable to discover open pages
Build info: version: '4.0.0-beta-4', revision: '29f46d02dd'
System info: host: 'PTQ-SH01', ip: '10.0.0.6', os.name: 'Windows Server 2019', os.arch: 
'amd64', os.version: '10.0', java.version: '11.0.11'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, 
goog:chromeOptions: {args: [], extensions: []}}], desiredCapabilities=Capabilities 
{browserName: chrome, goog:chromeOptions: {args: [], extensions: []}}}]

at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:84)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:62)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:156)
at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:162)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:137)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:612)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:165)
at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:89)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:99)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:86)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:41)
at lib.BrowserFactory.createChromeBrowser(BrowserFactory.java:35)
at lib.BrowserFactory.createBrowser(BrowserFactory.java:29)
at tests.openSite.open(openSite.java:13)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)


Process finished with exit code -1

服务器上的chrome版本更新为91.0.4472.114,这是最新版本,与我的本地机器上的版本相同。我还使用了最新的chromedriver(91.0.4472.101),它应该是兼容的(事实证明,它在本地运行良好)

有人能帮我弄清楚问题是什么吗


共 (0) 个答案