Pytanie webdriver: wgraj wiele plików


Mój test wymaga przesłania plików testowych w różnych przeglądarkach (webdriver + java) W przypadku pojedynczego przesyłania plików wszystko działa poprawnie. po prostu wysyłam ścieżkę

"C:\\testdata\\testfile.txt"
But, syntax changes for multiple upload and different browsers.

(
IE: 
"\"" + "C:\\Selenium\\TestData\\Flexy - BigFile1.txt"+"\"" +"\""+"C:\\Selenium\\TestData\\Flexy - BigFile2.txt" + "\""

CHROME: 
"C:\\Selenium\\TestData\\Flexy - BigFile1.txt"+"\n"+"C:\\Selenium\\TestData\\Flexy - BigFile2.txt".

FF: Wstyd mi, ale nie mogę znaleźć poprawnej składni firexofa :-(. Jakiś pomysł?

Jeśli istnieje wspólna składnia dla wszystkich przeglądarek, daj mi znać )


11
2018-05-30 13:09


pochodzenie




Odpowiedzi:


O ile mi wiadomo, selen nadal nie obsługuje przesyłania wielu plików (patrz problem w kodzie google).

Istnieje co najmniej jedno obejście: najwyraźniej utwórz formularz zawierający tyle pól wejściowych, ile potrzebujesz (zob kolejne pytanie stackoverflow). Nie jest to najlepsze rozwiązanie, ponieważ (prawdopodobnie) wymaga zmiany kodu, aby selen działał.

Jednak, jak się dowiedziałeś (dzięki za to!), Wydaje się, że możliwe jest wyzwolenie wielu plików w chrome i (chociaż ja tego nie przetestowałem) IE.

Właśnie potwierdziłem, że chromowana sztuczka "\ n" działa zarówno lokalnie, jak i na Browserstack (użyłem domyślnych obrazów, które dostarczają), co, biorąc pod uwagę stan rzeczy, jest wystarczająco dobre dla mnie.

Mam nadzieję, że to pomoże.


12
2017-07-29 14:28



Niesamowite! Nigdy bym nie zdawał sobie sprawy, że koniec linii był rozwiązaniem, gdyby nie twoja odpowiedź. Działa dla testu selenu w georgesironi w php! Dzięki za to. - samuraiseoul


Rozwiązanie dla mnie (selen w pytonie) polegało na powtarzaniu send_keys dla każdej ścieżki obrazu przed przesłaniem.

Przykład dla dwóch plików:

driver.find_element_by_name("filename").send_keys(file_path_1)
driver.find_element_by_name("filename").send_keys(file_path_2)
driver.find_elements_by_xpath("//*[contains(text(), 'Upload')]")[0].send_keys(Keys.RETURN)

0
2018-01-11 09:57





Mam także szansę przesłać wiele plików przez Selenium.

Wreszcie zdobądź rozwiązanie za pomocą AutoIT.

Ścieżkę do pliku można przekazać w czasie wykonywania.

ControlFocus(“File Upload”,””,”Edit1″)
ControlSetText(“File Upload”,””,”Edit1″,$CmdLine[1])
ControlClick(“File Upload”,””,”Button1″)


Runtime.getRuntime().exec("C:\\Users\\Mukesh_50\\Desktop\\My blog\\AutoIT\\fileUpload3.exe"+" "+"C:\\Users\\Mukesh_50\\Downloads\\VerifyTitle.java");

Jeśli znajdziesz jakiś problem, sprawdź uzupełnij artykuł o wideo.


-3
2018-04-10 06:41



Kilka opinii, które pomogą Ci poprawić jakość twoich postów: Nie wiem, czym jest AutoIT; Nie potrafię określić, w jakim języku powinien być fragment kodu lub jaki powinien być kontekst; a przykład kodu jest pełen "ładnych" cytatów i nie jest sformatowany. - Justin Force