请澄清,硒远程网络驱动程序速度慢是否正常,每个驱动程序实例的创建大约需要30秒?
另一个问题是,在启动selenium RemoteWebDriver服务器的控制台的初始化过程中,我看到非常奇怪且真的很大的日志。可以吗?似乎这个由Base64编码的大文本。
修改 下面是我在远程Web驱动程序控制台中启动selenium测试后可以看到的日志的一部分:
执行:[新会话:{firefox_profile = UEsDBBQACAgIAApgb0MAAAAAAAAAA ...,javascriptEnabled = true,browserName = null}]在URL:/ session) 12:00:26.644 INFO - 为Capabilities创建一个新会话[{firefox_profile = UEsDBBQACAgIAApgb0MAAAAAAAAAAAAAAAAAAAAAAAGZ1YWZTYMTdMTdMNTBm YWY3NmQyYzkzNTU0NDE3ZS5wbmeEe2VYHM0SLhAiQIDgDiFYcHdZgru7u7u7BEkIFhb34BYguLss rsHdncVd< ..真的很长LOG ...>
答案 0 :(得分:0)
可悲的是,Firefox配置文件是通过线路从集线器传输到节点的,这就是你的请求时间不佳的原因。我们遇到了同样的问题,不得不修补FirefoxDriver。
在FirefoxDriver sources中,有一种名为extractProfile
的方法会检查desiredCapabilities
'firefox_profile
密钥,然后requiredCapabilities
firefox_profile
密钥才能知道加载哪个配置文件。如果您通过客户端添加配置文件,它将作为一个巨大的base64字符串通过网络发送并在此解码。
我们已修补此部分以处理“path string”,如/ path / to / firefox,以指向节点文件系统上的本地配置文件。这并不困难,但你必须保持这一点。
也许你可以让Selenium团队修改这个部分,我们还没有采用“bug报告时间”(因为我们认为这个hack是由于我们对webdriver缺乏了解)
您可以通过现有驱动程序的modifiyng requiredCapabilities来定义正确的配置文件。它可能是一个配置的东西,但我们还没有找到一个记录良好的方法来实现它。
当你坚持使用电汇时,配置文件传输和解码会降低整个过程的速度(每次请求时,20GB左右的base64编码字符串也会减慢Google的Web服务器速度,我认为;-))