Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 使用Selenium WebDriverRemote以命令行参数启动Chrome_Python 2.7_Selenium_Selenium Webdriver_Automated Tests - Fatal编程技术网

Python 2.7 使用Selenium WebDriverRemote以命令行参数启动Chrome

Python 2.7 使用Selenium WebDriverRemote以命令行参数启动Chrome,python-2.7,selenium,selenium-webdriver,automated-tests,Python 2.7,Selenium,Selenium Webdriver,Automated Tests,我需要捕获Chrome-console-debug.log文件。 e、 g 这会将console-debug.log文件转储到UserData文件夹中。我手动测试了它,它工作正常 我看不到如何使用Selenium远程加载带有参数的Chrome 我已经检查了这里的文件,并试图遵循 现在我有两台机器,一台是linux机器,它承载我的python测试代码,另一台是Windows虚拟机,我运行Chrome对不同的URL进行测试 Windows VM具有Selenium独立服务器2.45.0,其启动脚本

我需要捕获Chrome-console-debug.log文件。 e、 g

这会将console-debug.log文件转储到UserData文件夹中。我手动测试了它,它工作正常

我看不到如何使用Selenium远程加载带有参数的Chrome

我已经检查了这里的文件,并试图遵循

现在我有两台机器,一台是linux机器,它承载我的python测试代码,另一台是Windows虚拟机,我运行Chrome对不同的URL进行测试

Windows VM具有Selenium独立服务器2.45.0,其启动脚本指向chromedriver.exe(版本2.23.409699)的位置。它也会启动IEDriverServer,但我们现在不使用它。我使用Startup文件夹中的批处理文件启动它,该文件夹中有一行

java -jar C:\Users\Remote\Desktop\selenium\selenium-server-standalone-2.45.0.jar -Dwebdriver.chrome.driver=C:\Users\Remote\Desktop\selenium\webdrivers\chromedriver.exe -Dwebdriver.ie.driver=C:\Users\Remote\Desktop\selenium\webdrivers\IEDriverServer.exe
在linux机器上,我使用Python实现,我们使用webdriver.Remote连接到Selenium独立服务器。出于调试目的,我正在运行PyCharm,这样我就可以逐步完成代码

我用于设置连接的代码是:

options = webdriver.ChromeOptions()
options.add_argument("--enable-logging")
caps = options.to_capabilities()

self.selenium = webdriver.Remote(
        command_executor='http://%s:4444/wd/hub' % browser_host_ip_address,
        desired_capabilities=caps,
        proxy=proxy)
如果我在进入webdriver.Remote代码之前使用PyCharm并监视caps对象,我会得到一个如下所示的对象:

{'chromeOptions': {'args': ['--enable-logging'], 'extensions': []}, 'javascriptEnabled': True, 'platform': 'ANY', 'browserName': 'chrome', 'version': ''}
此chromeOptions对象将其一直传输到Selenium独立服务器,然后输出到服务器控制台:

10:59:41.109 INFO - Done: [new session: Capabilities [{browserName=chrome, javascriptEnabled=true, chromeOptions={args=[--enable-logging], extensions=[]}, version=, platform=ANY}]]
这似乎没有通过chromedriver。我创建了一个简单的C程序,它输出传递给它的任何参数,并用它替换chromedriver,传递给它的唯一参数是--port=xxxxx,其中x是一个数字

所以chromeOptions一路通过,但在Selenium服务器上失败。我想象我在做一些愚蠢的事情,但我的生活中,我不知道我在做什么

我已经试用了最新版本的Selenium standalone server 3.0 beta 2和2.53.1,以及2.39.0,以防有什么东西阻止它。我还尝试了多种chromedriver版本

我假设我最初的假设是我可以用这种方式使用chromeOptions是错误的,但我不确定

我需要使用两台不同的机器,所以我假设我需要一个webdriver。远程对象作为webdriver。Chrome不支持远程连接。这是真的吗

如有任何意见或建议,将不胜感激

亚当

10:59:41.109 INFO - Done: [new session: Capabilities [{browserName=chrome, javascriptEnabled=true, chromeOptions={args=[--enable-logging], extensions=[]}, version=, platform=ANY}]]