在Selenium PhantomJSDriver中指定PhantomJS命令行选项

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

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

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

您可以使用PhantomJSDriverService.WebSecurity属性指定PhantomJS’– --web-security命令行选项,而不是将其作为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命令行的参数。