2011-08-23 18 views
5

मैं वर्तमान में PHPUnit के माध्यम से दूरस्थ सर्वर पर सेलेनियम आदेश चला रहा हूं। मैंने एक समस्या में भाग लिया है जहां मैं एक इनपुट फॉर्म में एक छवि अपलोड करने की कोशिश कर रहा हूं।सेलेनियम, PHPUnit, और AttachFile()

मेरी PHPUnit में, मैं आदेश

$this->attachFile('file', 'file://test.png'); 

मेरे सेलेनियम सर्वर में कोई त्रुटि

PHPUnit_Framework_Exception: Response from Selenium RC server for testComplete(). 
java.lang.RuntimeException: Output already exists: /tmp/selenium2070373138020433468upload. 

मेरे test.png फ़ाइल वर्तमान में केवल फ़ोल्डर जहां मैं अपने को क्रियान्वित कर रहा हूँ में स्थित है देता है। से पीएचपी परीक्षण परीक्षण।

मैं PHPUnit और सेलेनियम के माध्यम से फ़ाइल को सही तरीके से कैसे अपलोड कर सकता हूं और इसे अपवाद नहीं फेंक सकता हूं?

+0

कृपया सही उत्तर चुनें। – bikedorkseattle

उत्तर

6

मुझे एक ही समस्या थी। http://bitsilearn.blogspot.com/2010/03/selenium-upload-files.html

तो बजाय का उपयोग कर $this->attachFile('file', 'file://test.png') मैं का इस्तेमाल किया है: तब मैं इस लेख पाया

$this->type('file', '/path/to/file'); 

और यह काम करता है! :)

1

मेरा अनुभव का थोड़ा सा: फ़ाइल का पथ file:// (विंडोज प्लेटफ़ॉर्म पर उपयोग किया गया) के साथ प्रीफ़िक्स किया जाना चाहिए।

1

नीचे दिया गया कोड काम करता है। कोशिश करो।

$this->byName('Name Locator')->value('/home/img/Desert.jpg'); 
$this->byName()->submit(); 
sleep(1); 
+0

मूल प्रश्न अब तक वास्तव में पुराना है। 2012 में, विटेक जेज़ेक का जवाब शायद सही था, लेकिन 2016 में, वेबड्राइवर के साथ phpunit-सेलेनियम का उपयोग करके, यह उत्तर शायद आप जो खोज रहे हैं। –