我遇到了一个似乎是硒中的错误的问题,但也许有人可能会暗示我找到解决方案。
11个月前曾提出类似的问题,请参阅:How can I change logfile path of phantomjs with selenium? 但它没有解决。
我在Perl中使用Selenium :: Remote :: Driver连接到selenium。我的代码如下所示:
my $driver = new Selenium::Remote::Driver(
'remote_server_addr' => 'localhost',
'port' => "4444",
'browser_name' => 'phantomjs',
extra_capabilities => {
'phantomjs.cli.args' => ['--webdriver-logfile=/tmp/phantomjsdriver.log']
}
);
我发现phantomjs devs已经集成了参数phantomjs.cli.args来将参数传递给phantomjs。参数显示但不幸的是被添加到默认参数。
请参阅selenium的日志文件:
10:20:29.207 INFO - Creating a new session for Capabilities [{platform=ANY, javascriptEnabled=true, acceptSslCerts=true, phantomjs.cli.args=[--webdriver-logfile=/tmp/phantomjsdriver.log], browserName=phantomjs, version=}]
10:20:29.208 INFO - executable: /usr/local/node/bin/phantomjs
10:20:29.208 INFO - port: 5710
10:20:29.208 INFO - arguments: [--webdriver-logfile=/tmp/phantomjsdriver.log, --webdriver=5710, --webdriver-logfile=/phantomjsdriver.log]
10:20:29.208 INFO - environment: {}
PhantomJS is launching GhostDriver...
Unable to open file '/phantomjsdriver.log'
在第4行,您可以看到我的参数已被传递,但默认的'--webdriver-logfile = / phantomjsdriver.log'也是参数的一部分。
我还尝试将loglevel设置为NONE,但它仍尝试打开日志文件。
最后我尝试用配置文件启动phantomjs,但我无法弄清楚日志文件的配置选项,我不确定这会有所帮助。
如果重要的话,我的selenium服务器将作为守护进程运行。
感谢任何帮助!
度过愉快的一天
答案 0 :(得分:0)
您是否尝试过使用new_from_caps
方法来完全控制您的驱动程序实例?使用此选项,构造函数不会采用默认值。
e.g。
my $driver = Selenium::Remote::Driver->new_from_caps(
desired_capabilities => {
'browserName' => 'phantomjs',
'phantomjs.cli.args' => ['--webdriver-logfile=/tmp/phantomjsdriver.log']
}
);
请参阅此处的文档:https://metacpan.org/pod/Selenium::Remote::Driver#new_from_caps