【问题标题】:CreatePlatformSocket() returned an error: An invalid argument was supplied. (0x2726) when trying to access chromedriver through network pathCreatePlatformSocket() 返回错误:提供了无效参数。 (0x2726) 尝试通过网络路径访问 chromedriver
【发布时间】:2018-12-05 22:57:05
【问题描述】:

我了解操作系统更新导致此问题不仅适用于 chromedriver,也适用于 geckodriver。

当更新的工作站在本地运行它们时(例如驱动器 C:\),chromedriver 和 geckodriver 都可以正常启动。当在网络路径中找到这两个时,就会出现问题。

我检查了运行这些驱动程序的特定用户的权限,还检查了 UAC 和防火墙,但它们似乎与问题无关。

为了维护,我更喜欢从网络路径运行驱动程序。因为,我有几个自动化站,我想集中基础设施。这样我就不需要维护每个站点的基础设施了。

我在没有使用它们的选项的情况下使用默认设置运行这两个驱动程序,我相信也许使用这些选项可以解决问题。

有人熟悉这类问题吗?是否有可能通过使用驱动程序的选项,我可以安全地解决这些问题?

顺便说一句,我在 Windows 10 Pro 版本上运行:1803 OS build:17134.1

chromedriver 版本为 2.40.565498 win32 geckodriver 是 v0.20.1-win64

我收到的错误消息是:

chromedriver

[1530079175.164][SEVERE]: CreatePlatformSocket() returned an error: An invalid argument was supplied. (0x2726)
[1530079175.165][INFO]: listen on IPv4 failed with error ERR_INVALID_ARGUMENT
[1530079175.166][SEVERE]: CreatePlatformSocket() returned an error: An invalid argument was supplied. (0x2726)
[1530079175.166][INFO]: listen on IPv6 failed with error ERR_INVALID_ARGUMENT

geckodriver

An invalid argument was supplied. (os error 10022)

【问题讨论】:

    标签: selenium selenium-webdriver webdriver selenium-chromedriver geckodriver


    【解决方案1】:

    正如你所提到的:

    • ChromeDriverGeckoDriver 在本地执行时都可以正常启动(例如 C:\ 驱动器)
    • 在网络路径中发现 ChromeDriverGeckoDriver 时会出现问题。

    从历史上看,根据讨论:

    观察到 ChromeDriverGeckoDriver 在通过网络共享时,在初始化各自的 Browser Clients 时观察到以下错误:

    • 样品 A:

      Starting ChromeDriver 2.28.455520 (cc17746adff54984afff480136733114c6b3704b) on port 12121
      Only local connections are allowed.
      [0.023][SEVERE]: CreatePlatformSocket() returned an error: An invalid argument was supplied. (0x2726)
      [0.023][SEVERE]: CreatePlatformSocket() returned an error: An invalid argument was supplied. (0x2726)
      Port not available. Exiting...
      Mar 11, 2017 9:13:06 PM org.openqa.selenium.os.UnixProcess checkForError
      SEVERE: org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
      org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
      
    • 样品 B:

      [0.147][SEVERE]: CreatePlatformSocket() returned an error: An invalid argument was supplied. (0x2726) 
      [0.147][SEVERE]: CreatePlatformSocket() returned an error: An invalid argument was supplied. (0x27t6) 
      Port not available. Exiting...
      
    • 样品 C:

      Starting ChromeDriver 2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb) on port 17873
      Only local connections are allowed.
      [1525873930.811][SEVERE]: CreatePlatformSocket() returned an error: An invalid argument was supplied. (0x2726)
      [1525873930.816][SEVERE]: CreatePlatformSocket() returned an error: An invalid argument was supplied. (0x2726)
      Port not available. Exiting...
      May 09, 2018 7:22:30 PM org.openqa.selenium.os.UnixProcess checkForError
      SEVERE: org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
      Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
      
    • 甚至:

      //chromedriver
      [1530079175.164][SEVERE]: CreatePlatformSocket() returned an error: An invalid argument was supplied. (0x2726)
      [1530079175.165][INFO]: listen on IPv4 failed with error ERR_INVALID_ARGUMENT
      
      //geckodriver
      An invalid argument was supplied. (os error 10022)
      
      //IEDriverServer
      Failed to start the server with: port = '2305', host = '', log level = '', log file = '', whitelisted ips = ''
      

    解决方案

    因此,一个通用的解决方案是通过将 ChromeDriverGeckoDriver 放入主机的本地驱动器来访问它们。

    【讨论】:

    • 感谢您的回复。仅当我依赖的操作系统是 Windows 时才适用。正确的 ?顺便说一句,我的 Windows 7 站没有显示相同的问题。没有任何设置可以让我通过 Windows 安全性吗?一旦我了解到过去 Windows 7 在其中一次更新期间也提高了其安全级别,我就指示我的 IT 经理请求 Microsoft 对此问题的支持
    • @MosheS。恐怕。我不确定 Windows 安全 的东西。
    • 我将继续寻找运行 webdrivers 的良好实践。我想把它们放在一个中心位置,而不是在每个 LAB 站本地
    • 根据我的研究,我了解到必须有一种方法可以从网络路径运行 webdrivers。我仍然遗漏了一些东西,但我认为通过设置 geckodriver 选项(一些与其路径相关的选项),我可以成功地从网络路径运行它。我曾尝试使用 chromedriver 和 geckodriver 来做这件事,但仍然没有得到所需的解决方案。我认为我做错了什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    • 2014-10-08
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多