如何通过selenium更改phantomjs的日志文件路径?

时间:2015-08-20 08:28:44

标签: perl selenium phantomjs

我遇到了一个似乎是硒中的错误的问题,但也许有人可能会暗示我找到解决方案。

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服务器将作为守护进程运行。

感谢任何帮助!

度过愉快的一天

1 个答案:

答案 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