2013-02-14 52 views
7

我在Symfony2應用程序中使用Mink和Sahi進行用戶界面測試。但實際上我無法使用Sahi上傳文件。無法在Symfony2應用程序中使用Sahi/Mink/Behat上傳文件

我SAHI公司的服務器運行起來:

[09:51:33] [email protected]:~/Webdev/sahi/bin$ ./sahi.sh 
-------- 
SAHI_HOME: .. 
SAHI_USERDATA_DIR: ../userdata 
SAHI_EXT_CLASS_PATH: 
-------- 
Sahi properties file = /home/coil/Webdev/sahi/config/sahi.properties 
Sahi user properties file = /home/coil/Webdev/sahi/userdata/config/userdata.properties 
Added shutdown hook. 
>>>> Sahi started. Listening on port: 9999 
>>>> Configure your browser to use this server and port as its proxy 
>>>> Browse any page and CTRL-ALT-DblClick on the page to bring up the Sahi Controller 
----- 
Reading browser types from: /home/coil/Webdev/sahi/userdata/config/browser_types.xml 
----- 

我步實施:這裏

// $element->getXpath() --> (//html/descendant-or-self::*[@id = 'attachment'])[1] 
$element->attachFile($file); 

需要注意的是,如果我用一個文件,是不是/home/coil/Webdev/sahi/userdata目錄,我得到以下錯誤:

$element->attachFile('toto'); 
error:_setFile2(_byXPath("(//html/descendant-or-self::*[@id = 'attachment'])[1]"), "toto") 
     Error: File not found: toto; Base directory is userdata directory: /home/coil/Webdev/sahi/userdata 
     Error: File not found: toto; Base directory is userdata directory: /home/coil/Webdev/sahi/userdata 
     at Sahi._setFile (http://dev.project.com/_s_/spr/concat.js:1398:12) 
     at Sahi._setFile2 (http://dev.project.com/_s_/spr/concat.js:1367:7) 
     at eval (eval at <anonymous> (http://dev.project.com/_s_/spr/concat.js:3480:14), <anonymous>:1:7) 
     at Sahi.ex (http://dev.project.com/_s_/spr/concat.js:3480:9) 
     at <anonymous>:1:11 
     <a href='/_s_/dyn/Log_getBrowserScript?href=null&n=-1'><b>Click for browser script</b></a> 

因此,Sahi可以「找到」文件,因爲它不會對有效的和現有的文件產生任何錯誤。但是當表單提交時,文件永遠不會被Sahi代理上傳。

其他檢查:

  • 我刪除客戶端HTML5和JavaScript驗證,以確保沒有任何副作用。
  • 我所有的其他SAHI公司的測試都OK,只有3與上傳不及格
  • 代理設置在我的測試瀏覽器
  • 我可以打開瀏覽器中的SAHI公司控制沒有問題
  • 同在MaxOsX和Ubuntu
  • 我每次運行測試上傳的問題,我得在/用戶數據/溫度/下載命名爲喜歡sahi_11a83f8806be8046fc0aaa80eac076110b95__fr-fr-2-0.bdic

什麼是很奇怪的一個新的項目,就是我相信,那些測試通過前幾次,所以mething必須已經改變了我的應用程序或配置,打破了Sahi文件上傳,但我找不到。 而之前在Sahi控制檯中,我記錄了它正在上傳的文件,現在根本沒有日誌。

+0

您是在「dev」還是在「production」中運行應用程序?環境?這可能是你沒有看到任何日誌的原因? – tftd 2013-02-25 14:10:53

+0

它使用'測試'環境。但我在談論Sahi日誌而不是應用程序日誌。 – COil 2013-02-25 15:01:26

回答

1

表單發佈的網址與網頁的網址是不同的? _setFile和_setFile2取第三個參數,可以配置爲指向動作URL(Sahi代理應該附加的URL)http://sahi.co.in/w/_setFile

+0

表單發佈與表單本身的URL相同:'

' – COil 2013-02-14 16:28:22

+0

我也在Sahi的最後一個版本中嘗試過'_setFile2',但沒有成功。 – COil 2013-02-22 20:54:27

2

使用Sahi服務器訪問的絕對系統路徑。

+0

我用'/ tmp/file.doc'試過,但沒有成功。我真的覺得在代理級別配置不好。 – COil 2013-02-14 10:37:45

+0

可能。但是我確信上傳作品是SahiDriver測試套件通過的。它有文件上傳測試用例:/ – everzet 2013-02-19 13:40:13

+0

如果您只運行上傳測試,是否在'/ bin/sahi.sh'控制檯中登錄了哪些文件正在上傳? – COil 2013-02-19 13:48:17

相關問題