RobotFramework seleniumlibrary 在网络命名空间中打开无头浏览器

RobotFramework seleniumlibrary open headless browser in network namespace

我需要在我的设置中使用网络命名空间,它工作得很好。
但是,当涉及到通过 seleniumLibrary 进行测试以打开浏览器并测试网络界面时,我似乎无法让它与网络命名空间一起工作。

我可以通过 运行ning firefox 在命名空间中手动 运行 firefox,它可以访问指定命名空间的网络。
我如何在 RobotFramework 中使用 seleniumLibrary 执行此操作?

我有这个 atm:

*** Settings ***
Documentation   Test browser access in netns

Library   OperatingSystem
Library   SeleniumLibrary

Force Tags  test_123

*** Test Cases ***
Test Browser In Netns
    Open Browser    192.168.0.100  browser=ff
    Close Browser

运行 这会产生错误:\

WebDriverException: Message: Service geckodriver unexpectedly exited. Status code was: 69 
  
Traceback (most recent call last):
  File "/home/mci/.local/lib/python3.8/site-packages/SeleniumLibrary/__init__.py", line 492, in run_keyword
    return DynamicCore.run_keyword(self, name, args, kwargs)
  File "/home/mci/.local/lib/python3.8/site-packages/robotlibcore.py", line 103, in run_keyword
    return self.keywords[name](*args, **(kwargs or {}))
  File "/home/mci/.local/lib/python3.8/site-packages/SeleniumLibrary/keywords/browsermanagement.py", line 293, in open_browser
    return self._make_new_browser(
  File "/home/mci/.local/lib/python3.8/site-packages/SeleniumLibrary/keywords/browsermanagement.py", line 324, in _make_new_browser
    driver = self._make_driver(
  File "/home/mci/.local/lib/python3.8/site-packages/SeleniumLibrary/keywords/browsermanagement.py", line 716, in _make_driver
    driver = self._webdriver_creator.create_driver(
  File "/home/mci/.local/lib/python3.8/site-packages/SeleniumLibrary/keywords/webdrivertools/webdrivertools.py", line 83, in create_driver
    return creation_method(
  File "/home/mci/.local/lib/python3.8/site-packages/SeleniumLibrary/keywords/webdrivertools/webdrivertools.py", line 199, in create_firefox
    return webdriver.Firefox(
  File "/home/mci/.local/lib/python3.8/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__
    self.service.start()
  File "/home/mci/.local/lib/python3.8/site-packages/selenium/webdriver/common/service.py", line 98, in start
    self.assert_process_still_running()
  File "/home/mci/.local/lib/python3.8/site-packages/selenium/webdriver/common/service.py", line 109, in assert_process_still_running
    raise WebDriverException(

运行 这个外部网络命名空间没有产生任何错误,并且 100% 通过。

创建 netns 时不会自动添加和向上环回。
这需要加上ip netns exec net-$name ip link set dev lo up
GeckoDriver 将尝试将自己绑定到 127.0.0.1 上的随机端口,因此 lo 不启动,它自然会失败。