Chrome 我可以在Selenium中不使用通配符设置remote-allow-origins吗?

bejyjqdl  于 2023-03-16  发布在  Go
关注(0)|答案(1)|浏览(388)

我遇到了Selenium WebDriver的WebSocket问题,与描述here的问题相同。问题的解决方案是将--remote-allow-origins=*参数添加到驱动程序的ChromeOptions。但是,我不想为此参数使用通配符。我想将其设置为仅允许从我的应用程序连接的值。
我相信解决方案将涉及预先确定WebDriver的端口。这是我最好的尝试,但它不起作用:

ChromeOptions options = new ChromeOptions();
options.addArguments("--incognito", "--app=" + linkedform);

int port;
try (ServerSocket serverSocket = new ServerSocket(0)) {
    port = serverSocket.getLocalPort();
} catch (IOException e) {
    throw new RuntimeException(e);
}

options.addArguments("--remote-allow-origins=http://localhost:" + port);
ChromeDriverService service = new ChromeDriverService.Builder().usingPort(port).build();
this.chrome = new ChromeDriver(service, options);

我是不是走对了路?这可能吗?

xzlaal3s

xzlaal3s1#

你可以试试这样的

ChromeOptions options = new ChromeOptions();
        System.setProperty("webdriver.chrome.driver", "drivers/chromedriver.exe");

        options.addArguments("--remote-allow-origins=*");
        WebDriver driver = new ChromeDriver(options);
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.navigate().to("http://localhost:8080/leiloes");

相关问题