Chrome远程Webdriver会话似乎忽略了--use-fake-device-for-media-stream

时间:2019-06-14 06:49:54

标签: python docker selenium-chromedriver

我一直在使用pytest和selenium chromedriver开发一个测试套件,以自动化一个网站,该网站利用用户的网络摄像头在用户使用网站时(经他们的许可!)拍摄照片和录制视频。

最终目标是使用官方的selenium / standalone-chrome容器来利用Docker-Compose,该容器反过来针对SUT的docker容器运行我的测试。

在本地运行测试时(即,在下面的代码中采用“本地”执行路径),使用--use-fake-device-for-media-stream--use-fake-ui-for-media-stream标志不会遇到问题。

但是,当我尝试通过远程WebDriver会话运行完全相同的测试时,SUT会报告浏览器不支持网络摄像头API,并且需要更新浏览器。

def browser(request):
    browser_args = Options()
    browser_args.add_argument("--use-fake-device-for-media-stream")
    browser_args.add_argument("--use-fake-ui-for-media-stream")

    browser = request.config.getoption("--browser")

    if browser == "local":
        browser = webdriver.Chrome(options=browser_args)

    elif browser == "remote":
        browser_args.add_argument("--headless")
        browser = webdriver.Remote(
            command_executor=f"http://{request.config.getoption('--selenium-server')}:4444/wd/hub", options=browser_args)

据我所知,本地和远程Webdriver都应使用相同的参数,但这是我第一次使用远程Webdriver,所以我不确定。任何帮助或指导将不胜感激。

0 个答案:

没有答案