2013-07-22 69 views
3

PhantomJS驅動程序是否支持命令行參數?我需要使用PhantomJS驅動程序運行Selenium測試並禁用網絡安全。我曾嘗試過:指定PhantomJS命令行選項Selenium PhantomJSDriver

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

但這似乎不起作用。 PhantomJSDriver是否允許傳遞命令行參數?

回答

4

您可以使用PhantomJSDriverService.WebSecurity Property指定PhantomJS'--web-security命令行選項,而不是將其作爲PhantomJSOptions傳遞給它。

這硒2.32.0增加,報價從更新日誌:

(代表GeoffMcElhanon的)新增支持參數傳遞給 PhantomJS。對於PhantomJS支持的所有命令行開關,PhantomJSDriverService現在具有類型安全屬性 。這些 可以直接在命令行上傳遞,或者可以將 序列化爲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命令行的參數。

+0

你知道在[郵件列表](https://groups.google.com/forum/#!topic/selenium-users/QBUGtKBHMOA)和StackOverflow上詢問問題的東西,而你回答郵件列表中的人,並且其他人在StackOverflow上可疑地回答你的問題?是的,那。 – JimEvans

+2

@JimEvans:哎呀,對不起吉姆,顯然我不是一個定期檢查郵件列表的人,這意味着我不知道你的答案是什麼樣子,但現在知道我的答案與JimEvans的「永遠正確」的答案。也許我應該從現在開始在郵件列表中跟蹤你。無論如何,謝謝你,吉姆。 –

+0

PhantomJSDriver服務不支持AddArgument()或AddArguments()...不根據文檔http://selenium.googlecode.com/git/docs/api/dotnet/index.html – user2474653