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

时间:2013-07-22 12:56:59

标签: c# selenium webdriver selenium-webdriver phantomjs

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

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

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

1 个答案:

答案 0 :(得分:4)

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

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

  

(代表GeoffMcElhanon)添加了传递参数的支持   PhantomJS。 PhantomJSDriverService现在具有类型安全属性   对于PhantomJS支持的所有命令行开关。这些   可以直接在命令行上传递,也可以序列化   使用--config命令行开关传递到JSON文件中   到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命令行的参数。