क्या सेलेनियम आरसी "attach_file" केवल फ़ायरफ़ॉक्स का समर्थन करता है क्योंकि Google क्रोम में फ़ाइल अपलोड करने का कोई तरीका है? किसी भी सुझाव या कामकाज की बहुत सराहना की जाती है।सेलेनियम: Google क्रोम में फ़ाइल अपलोड करें
उत्तर
फ़ाइल अपलोड करना आम तौर पर एक POST अनुरोध है, इसलिए आप वास्तव में सेलेनियम का उपयोग किये बिना फ़ाइल अपलोड कर सकते हैं; आपकी साइट द्वारा कुकी की आवश्यकता है, तो आप webdriver.get_cookies() पहले से कुकीज़ को फिर से संगठित करने की जरूरत है
एक साधारण उदाहरण:
# required package:
# http://pypi.python.org/pypi/MultipartPostHandler/0.1.0
import MultipartPostHandler, urllib2, cookielib
cookies = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies),
MultipartPostHandler.MultipartPostHandler)
path_to_file = r"abc.zip"
open_file = open(path_to_file,"rb")
param = { "file": open_file }
req = opener.open("http://www.yoursite.com/uploadfile", param)
open_file.close()
आप Webdriver उपयोग कर रहे हैं तो फ़ाइल अपलोड करने की आप सभी की जरूरत इस्तेमाल होता है " sendKeys "फ़ाइल पथ टाइप करने के लिए। आपको ब्राउज़ बटन पर क्लिक करने के हिस्से को 'छोड़ना' होगा जो फ़ाइल का चयन करने के लिए एक संवाद बॉक्स खोलता है। एक जावा संस्करण है कि मेरे लिए काम करता है, नीचे तरह दिखता है
WebElement inputFilePath = driver.findElement(By.id("filepath"));
inputFilePath.sendKeys("/absolute/path/to/my/local/file");
शायद भी ध्यान देने योग्य है कि लायक फ़ाइल अपलोड करने के लिए sendKeys का उपयोग करके केवल एक <इनपुट प्रकार = "फ़ाइल> – Ardesco
का उपयोग IJavaScriptExecutor क्लिक करने में सक्षम तो क्रोम ड्राइवर पॉप-अप नहीं होगा कह इस तत्व गैर क्लिक करने योग्य है त्रुटि अपलोड इनपुट क्षेत्र बदलने के लिए है।
[SetUp]
public void SetupTest()
{
driver = new ChromeDriver();
baseURL = "";
verificationErrors = new StringBuilder();
}
[Test]
public void Test()
{
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
IWebElement element = driver.FindElement(By.Id("UploadFile_ButtonID"));
js.ExecuteScript("arguments[0].style.visibility = 'visible'; arguments[0].style.height = '1px'; arguments[0].style.width = '1px'; arguments[0].style.opacity = 1", element);
Thread.Sleep(1000);
element.SendKeys("D:\\path\\test\\image.jpg");
}
के साथ काम करेगा संदर्भ के बिना कोड व्यर्थ है। आपने यह नहीं समझाया है कि आप तत्व को दृश्यमान करने के लिए जावास्क्रिप्ट निष्पादक का उपयोग क्यों कर रहे हैं और IMHO यह संभवतः खराब अभ्यास है। सेलेनियम आपको छुपे तत्वों के साथ बातचीत करने से रोकता है क्योंकि यह ऐसा कुछ है जो अंतिम उपयोगकर्ता नहीं कर सकता था। अंधाधुंध जे का उपयोग करने के बजाय एवास्क्रिप्ट तत्व को मजबूर करने के लिए मजबूर करता है जो आपको वास्तविकता में करना चाहिए, तत्व को दृश्यमान बनाने के लिए अंतिम उपयोगकर्ता क्या करेगा। – Ardesco
आप थ्रेड स्लीप का भी उपयोग करते हैं जो कि फिर से खराब अभ्यास है, करने के लिए सही काम करने के लिए एक वेबड्राइवरवाइट ऑब्जेक्ट और अपेक्षित कंडीशन क्लास का उपयोग करना होगा ताकि तत्व दिखाई दे सके। यह एक संक्षिप्त उदाहरण है जिसमें कोई स्पष्टीकरण और खराब कोड अभ्यास -1 नहीं है – Ardesco
- 1. अपलोड करें अचानक क्रोम 10
- 2. सेलेनियम के साथ फ़ाइल (चित्र) को कैसे अपलोड करें, पायथन
- 3. jQuery फ़ाइल अपलोड करेंयूआई फ़ाइल अपलोड करें
- 4. सेलेनियम वेबड्राइवर क्रोम
- 5. मैं अपने क्रोम में Google क्रोम 11 की अपलोड फ़ोल्डर सुविधा का उपयोग कैसे करूं?
- 6. Google ऐप इंजन बड़ी फ़ाइल अपलोड
- 7. Google क्रोम
- 8. Symfony2: फ़ाइल अपलोड करें
- 9. इनपुट फ़ाइल क्रोम क्लिक करें
- 10. Google क्रोम
- 11. फ़ाइल अपलोड करें एमवीसी
- 12. Google क्रोम
- 13. Google क्रोम/यूनिक्स के लिए कुकी फ़ाइल
- 14. Google ड्राइव अपलोड संभव रद्द करें?
- 15. Google क्रोम
- 16. Google क्रोम
- 17. Google क्रोम
- 18. Google क्रोम
- 19. डब्ल्यूसीएफ सेवा में फ़ाइल कैसे अपलोड करें?
- 20. डार्ट में फ़ाइल कैसे अपलोड करें?
- 21. विंडो फॉर्म में फ़ाइल कैसे अपलोड करें?
- 22. Google क्रोम एक्सटेंशन और एनपीएपीआई
- 23. फ़ाइल अपलोड करें जूमला मॉड्यूल
- 24. ट्विटर बूटस्ट्रैप फ़ाइल अपलोड करें
- 25. पीएचपी अपलोड फ़ाइल पोस्ट
- 26. एंड्रॉइड वेबव्यू फ़ाइल अपलोड करें
- 27. Google क्रोम में क्रॉसडोमेन सेटिंग्स
- 28. Google क्रोम में सीएसएस डिबगिंग
- 29. चयन पर फ़ाइल अपलोड करें
- 30. PHP: फ़ाइल अपलोड करें move_uploaded_file()
[मैं एक जवाब यहाँ अजगर का उपयोग कर पोस्ट किया गया।] [1] [1]: http://stackoverflow.com/a/11872608/471376 – JamesThomasMoon1979