4

PhantomJS 驱动程序是否支持命令行参数?我需要使用 PhantomJS 驱动程序运行 Selenium 测试并禁用网络安全。我努力了:

PhantomJSOptions options = new PhantomJSOptions();           
options.AddAdditionalCapability("web-security",false);             
driver = new PhantomJSDriver(Environment.CurrentDirectory + @"\drivers", options);

但这似乎不起作用。PhantomJSDriver 是否允许传递命令行参数?

4

1 回答 1

4

您可以使用PhantomJSDriverService.WebSecurity Property--web-security指定 PhantomJS 的命令行选项,而不是将其作为.PhantomJSOptions

这是在 Selenium 2.32.0 中添加的,来自 CHANGELOG 的引用:

(代表 GeoffMcElhanon)添加了向 PhantomJS 传递参数的支持。PhantomJSDriverService 现在具有 PhantomJS 支持的所有命令行开关的类型安全属性。这些可以直接在命令行上传递,或者可以序列化为 JSON 文件,以便与 --config 命令行开关一起传递给 PhantomJS。

以下是未经测试的代码,必要时请参阅文档(Selenium zip 文件中的 WebDriver.chm)。

var service = PhantomJSDriverService.CreateDefaultService(Environment.CurrentDirectory + @"\drivers");
service.WebSecurity = false;
var driver = new PhantomJSDriver(service);

PhantomJSDriverService还有其他可以指定的预定义命令行参数,请查看文档。还有一些方法可以添加您自己的参数。

AddArgument():将单个参数添加到要附加到 PhantomJS.exe 命令行的参数列表中。
AddArguments(IEnumerable):添加要附加到 PhantomJS.exe 命令行的参数。
AddArguments(String[]):添加要附加到 PhantomJS.exe 命令行的参数。

于 2013-07-22T21:20:50.070 回答