मैं अपने सेलेनियम परीक्षण ज़ेलेनियम डोकर छवि के माध्यम से चला रहा हूँ। मेरे पास एक परीक्षण है जिसके लिए आवेदन में एक .pdf दस्तावेज़ अपलोड करने की आवश्यकता है। मैं अपने सभी .pdfs को स्टोर करने के लिए जिस निर्देशिका का उपयोग करूंगा वह है: D:\Automation\KITS Automation\exports-endtoend-tests\Defra.Exports.EndToEnd.Tests\bin\Debug\netcoreapp2.1 मैंने इस पथ को अपने में जोड़ा है नीचे के रूप में डॉकर सीएमडी विंडो:

डॉकर रन --rm -ti --name zalenium -p 4444:4444 -v /var/run/docker.sock:/var/run/docker.sock -v /tmp/videos:/home/seluser/videos -v /d:/ऑटोमेशन/किट्स ऑटोमेशन/exports-endtoend-tests/defra.exports.endtoend.tests/bin/debug/netcoreapp2.1 --विशेषाधिकार प्राप्त dosel/zalenium start

एक बार जोड़ा गया डॉकटर इस फ़ाइल को एक पुष्टिकरण पॉपअप बॉक्स के साथ साझा करने का अनुरोध करता है, हालांकि जब मैं परीक्षण चलाता हूं तब भी मुझे नीचे त्रुटि दिखाई देती है

OpenQA.Selenium.WebDriverException: अमान्य तर्क: फ़ाइल नहीं मिली: D:\Automation\KITS Automation\exports-endtoend-tests\Defra.Exports.EndToEnd.Tests\bin\Debug\netcoreapp2.1\test-ehc.pdf

सी # कोड जो फ़ाइल अपलोड करने को निष्पादित करता है:

        string folder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
        string filePath = Path.Combine(folder, "test-ehc.pdf");
        driver.FindElement(By.Id("file")).SendKeys(filePath)
0
Steve 19 नवम्बर 2019, 15:18
यदि आपको होस्ट डॉकर सॉकेट, एक विशेषाधिकार प्राप्त कंटेनर, और होस्ट से मनमानी सामग्री तक पहुंच की आवश्यकता है, तो संभवतः आपको डॉकर के बाहर प्रक्रिया को चलाने में आसानी होगी।
 – 
David Maze
19 नवम्बर 2019, 15:25
धन्यवाद डेविड, आप सही हैं कि परीक्षण स्थानीय रूप से डॉकटर के बाहर सही तरीके से चलते हैं लेकिन यह एक व्यावसायिक आवश्यकता है कि ऑटोमेशन प्लेटफॉर्म डॉकटर का उपयोग करता है। मुझे यकीन है कि यह संभव है मैं अभी वहां बिल्कुल नहीं हूं
 – 
Steve
19 नवम्बर 2019, 15:45
मैंने डॉकर एप्लिकेशन में सेटिंग्स के माध्यम से पूर्ण डी: ड्राइव साझा करने का भी प्रयास किया है: डॉकर/सेटिंग्स/साझा ड्राइव ऐसा करने के बाद मुझे लगता है कि एक फ़ायरवॉल विंडोज़ और कंटेनरों के बीच फ़ाइल साझाकरण को अवरुद्ध कर रहा है। अधिक जानकारी के लिए दस्तावेज़ीकरण देखें। मैंने अपने फ़ायरवॉल की जाँच की है DockerSmbMount सार्वजनिक और निजी दोनों पर सक्षम है क्या यहाँ कुछ और आवश्यक है?
 – 
Steve
19 नवम्बर 2019, 16:40

2 जवाब

यह ज़ेलेनियम से बिल्कुल भी संबंधित नहीं है। परीक्षण कोड, सी # यहां मामला प्रतीत होता है, अपलोड करने के लिए फ़ाइल तक पहुंच की आवश्यकता है। आम तौर पर यह के माध्यम से किया जाता है

driver.setFileDetector(new LocalFileDetector());

यदि आप डॉकर कंटेनर के अंदर सी # कोड चलाना चाहते हैं, तो कृपया डॉकर छवियों को देखें जिनका उपयोग इसके लिए किया जा सकता है। अंत में, अपलोड की जाने वाली फ़ाइल को ज़ेलेनियम के साथ साझा करने की आवश्यकता नहीं है, इसे कंटेनर के साथ साझा करने की आवश्यकता है जहां परीक्षण कोड निष्पादित किया जाएगा।

0
diemol 22 नवम्बर 2019, 16:21

यह ज़ेलेनियम से संबंधित है जब ज़ेलेनियम शुरू करते समय आप नीचे दिए गए आदेश का उपयोग करते हैं:

docker run --rm -ti --name zalenium -p 4444:4444 -v 
/var/run/docker.sock:/var/run/docker.sock -v /D/source/repos/Defra.Git/ehco-endtoend- 
tests/src/main/resources/upload:/tmp/node/home/seluser/Downloads --privileged 
dosel/zalenium start --desiredContainers 2
0
Steve 11 फरवरी 2020, 00:08