2017-05-23 3 views
-3

Ich versuche, ein Dokument von meinem System auf eine Anwendung hochzuladen und es beinhaltet fließen als:Datei kann nicht im selen Webtreiber hochgeladen werden, ich habe SendKeys() verwendet, um den Dateipfad zu übergeben, aber immer noch die Datei nicht hochgeladen

Bibliothek Seite >> Dokument-Taste laden >> Web-basierte wählen Dokument Pop-up >> nach Klicken auf Datei im Pop-up, öffnet es das System Pop-up von wo Datei auswählen müssen.

für obigen Fall, ich habe geschrieben Code als:

WebElement element = driver.findElement (By.xpath ("// Taste [@ class = 'btn btn-primären Upload-doc-btn cap-Brief fett upload_document_image marginrightfix18 '] ")); Aktionen action = neue Aktionen (driver); action.moveToElement (Element) .click(). Perform();

 WebDriverWait wait = new WebDriverWait(driver, 300); 
     WebElement selectElement = wait.until(ExpectedConditions 
       .visibilityOfElementLocated(By.xpath("//label[@class='btn btn-primary file-select-btn margintop10']"))); 

     WebElement selectdoc = driver.findElement(By.xpath("//label[@class='btn btn-primary file-select-btn margintop10']")); 

     Actions actions = new Actions(driver); 
     actions.moveToElement(selectdoc); 
     actions.click(); 

// Bis zu diesem Klick arbeiten und immer das Systemfenster mir geöffnet, aber der angegebene Pfad der Datei-Tasten senden nicht funktioniert und nicht in der Lage, die erwähnten Datei

 actions.sendKeys("C://Users//Vishnu//Documents//seleniumnotes.docx"); 
     actions.build().perform(); 

Für hochladen über Code, ich bekomme "unbekannt Fehler: kann nicht Element Fokus" Fehler aufgrund der angegebenen Datei nicht zum Hochladen ausgewählt werden.

Bitte schlagen Sie Ihre wertvollen Antworten vor. Gut, wenn Sie mit der Methode .sendkeys() antworten.

Ich habe die "Robot" -Klasse auch ausprobiert, aber das funktioniert auch für mich, also versuch es mit .sendkeys().

Ihre Antwort kann meinen Tag retten !!

Antwort

1

Sie können Selen nicht zum Bedienen von Fensterfunktionen verwenden. Selen kann nur auf Browser verwendet wird

so wie die Roboter-Klasse funktioniert nicht Ich glaube, Sie sollten Autoit Software versuchen

0

die Datei schließlich zu laden, habe ich erfolgreich hochgeladene Datei mit Robot-Klasse (mit Hilfe von Aktionen ())

folgender Code für mich gearbeitet:

 StringSelection selection = new StringSelection("C:\\Users\\Vishnu\\Documents\\Chapter name.png"); 
     java.awt.datatransfer.Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 
     clipboard.setContents(selection, null); 

     Robot robot = new Robot(); 
     robot.keyPress(KeyEvent.VK_CONTROL); 
     robot.keyPress(KeyEvent.VK_V); 
     robot.keyRelease(KeyEvent.VK_V); 
     robot.keyRelease(KeyEvent.VK_CONTROL); 
     robot.keyPress(KeyEvent.VK_ENTER); 
     robot.keyRelease(KeyEvent.VK_ENTER); 
0

Wenn die Datei-Upload-Button input-Tag hat, dann können Sie unter Code verwenden Datei zu.

WebElement ele = driver.findElement(By.LocStrgy("Locator with input tag")); 
ele.sendKeys("path to file"); 
Verwandte Themen