2

enter image description hereSel Java-Code für diese Seite laden habe ich versucht,Kann eine Excel-Datei vom PC in Selen

WebElement element=driver.findElement(By.id("ddlEmailSource")); 
     org.openqa.selenium.support.ui.Select se=new org.openqa.selenium.support.ui.Select(element); 
     se.selectByValue("ff"); 
     driver.findElement(By.id("div_btnFileUpload")).sendKeys("C:\Users\Phantom\Documents\1.txt"); 

FehlerdetailsInvalid escape sequence (valid ones are \b \t \n \f \r \" \' \\)

HTML-Code für diese Seite

<input title="Click to Select and Upload File" style="position: absolute; margin: 0px; padding: 0px; opacity: 0; top: 20px; left: 21px;" name="MyFile" type="file"> 

Auch versucht mit

driver.findElement(By.name("MyFile")).sendKeys("C:\Users\Phantom\Documents\1.txt"); 

Aber auch throughs es FehlerdetailsInvalid escape sequence (valid ones are \b \t \n \f \r \" \' \\)

Versuchte mit

WebElement elementfile= driver.findElement(By.name("datafile")); 
    elementfile.sendKeys("C:\Users\Phantom\Documents\1.txt"); 

Gegeben Detail Fehler angebracht

Bitte mich Vorschlag geben, was nur

+0

warum versuchen Sie nicht den Schrägstrich '/'. Es funktioniert, wenn Sie den absoluten Pfad angeben. Unterstützt auch Linux. –

+0

Hallo alle, während iam mit "//" tut es nicht durch den kompilieren ime Fehler, aber mein Ziel immer noch nicht erfüllen, nur der mycomputer öffnet und dann though ein Lauf tome Fehler wie folgt ** (Ausnahme im Thread "main" org .openqa.selenium.NoSuchElementException: Element kann nicht gefunden werden: {"method": "name", "selector": "datafile"}) **, während mein Code ** driver.findElement (By.id ("div_btnFileUpload") ist)).klicken(); WebElement elementfile = driver.findElement (By.name ("datafile")); \t \t elementfile.sendKeys ("C: \\ Benutzer \\ Phantom \\ Dokumente \\ 1.txt"); ** –

+0

sieht aus wie der Bezeichner falsch ist, überprüfen Sie das Element kann mit Css oder XPath –

Antwort

2

Sie tun also Verwenden Sie \\ und Ihr Code

WebElement elementfile= driver.findElement(By.name("datafile")); 
    elementfile.sendKeys("C:\\Users\\Phantom\\Documents\\1.txt"); 
+0

Hallo alle, während iam mit "\\" tut es nicht durch den kompilieren ime Fehler, aber mein Ziel immer noch nicht erfüllen, nur der mycomputer öffnet und dann thoughs ein Lauf tome Fehler wie folgt ** (Ausnahme im Thread "main" org .openqa.selenium.NoSuchElementException: Element kann nicht gefunden werden: {"method": "name", "selektor": "datafile"}) **, während mein code driver.findElement (By.id ("div_btnFileUpload")) lautet.); WebElement elementfile = driver.findElement (By.name ("Datendatei")); elementfile.sendKeys ("C: \\ Benutzer \\ Phantom \\ Dokumente \\ 1.txt") –

0

Verwenden Doppel rückwärts Schrägstriche (\\) in Pfad arbeiten, wenn Sie Windows verwenden oder Vorwärts-Schrägstriche verwenden, wenn Ihr Linux oder Mac verwenden (//)

Der bessere Weg ist Platz Ihre Datei und Ordner in Ihrem Projekt selbst und Sie können Pfad auch wie unten verwenden: -

./src\\Documents\\1.txt 

ODER

String testDataFile = System.getProperty("user.dir"+"\\1.txt"); 
File src = new File(testDataFile) 

user.dir geben Sie den Speicherort des aktuellen Verzeichnisses des Projekts

Es bedeutet, dass Ihre Excel-Datei im Projektordner selbst vorhanden sein sollte. Erstellen Sie einen Ordner in Ihrem Projektverzeichnis und fügen Sie diese Datei in diesem Ordner ein. Auf diese Weise wird git diese Daten auch in Ihr Repository übertragen und auch nach dem Server suchen.

Hoffe, es wird Ihnen helfen :)

+0

Hallo alle, während iam mit "\\" tut es nicht durch den compile ime Fehler, aber mein Ziel immer noch nicht erfüllen, nur der mycomputer öffnet und dann though ein lauf tome error wie folgt ** (Ausnahme im Thread "main" org.openqa.selenium.NoSuchElementException: Das Element konnte nicht gefunden werden: {"method": "name", "selector": "datafile "}) **, während mein Code driver.findElement (By.id (" div_btnFileUpload ") ist). click(); WebElement elementfile = driver.findElement (By.name ("Datendatei")); elementfile.sendKeys ("C: \\ Benutzer \\ Phantom \\ Dokumente \\ 1.txt") –

0

enter image description here Hallo Qa Testing plz Ihre letzte Zeile Code aktualisieren

driver.findElement(By.id("div_btnFileUpload")).sendKeys("C:\Users\Phantom\Documents\1.txt"); 

zu

driver.findElement(By.id("div_btnFileUpload")).sendKeys("C:\\Users\\Phantom\\Documents\\1.txt"); 

das Problem Dies wird lösen Sie konfrontiert sind. Bitte beachten Sie auch, dass Sie in Java mit Selen immer den doppelten Schrägstrich "\\" verwenden.

Update:

Datei-Upload in Selen kann auf zwei Arten erfolgen:

1. via sikuli or autoit tool (Basically windows automation tool). 
2. direct upload when the tag has one attribute **type=file** 

in Ihrem Fall, dass Sie versuchen, Datei-Upload auf einen Knopf und nicht auf -Tag mit dem Attribut Typ zu tun = Datei das ist, warum ein Fenster Pop-up öffnet sich jedes Mal , wenn Sie den obigen Code ausführen. stattdessen Datei-Upload zu tun einfach wie unten tun (wie in Ihrem Screenshot zur Verfügung gestellt)

driver.findElement(By.name("MyFile")).sendKeys("C:\\Users\\Phantom\\Documents\\1.txt"); 

oder wenn das nicht die Verwendung funktioniert wie

driver.findElement(By.xpath("//*[@id='div_btnFileUpload']/input[2]")).sendKeys("C:\\Users\\Phantom\\Documents\\1.txt"); 

Hoffnung, dies hilft Ihnen jetzt.

+0

Hallo Rajnish Kumar es durchsetzt Kompilierzeit Fehler, wie hochgeladen das Picz, das ist "Ausnahme in Thread" main "java.lang .Error: Ungelöste Kompilierungsproblem: \t Ungültige Escape-Sequenz (gültige sind \ b \ t \ n \ f \ r \ "\ '\\)" –

+0

ja du bist richtig es wird dir kompilieren Zeit Fehler nicht Laufzeitfehler PLZ aktualisieren sie Ihren weg in der Sendkeys zu diesem „C: \\ Users \\ Phantom \\ Dokumente \\ 1.txt“ und Zeitfehler kompilieren abklingen –

+0

Hallo alle, Während iam mit „\\“ es doesnot durch die Kompilierung Ime Fehler, aber mein Ziel immer noch nicht zu erfüllen, nur der Mycomputer öffnet und dann thoughs ein Lauf tome Fehler wie folgt ** (Ausnahme im Thread "Haupt" org.openqa.selenium.NoSuchElementException: nicht zu lokalisieren Element: {"Methode" : "Name", "Selektor": "Datendatei"}) **, während mein Code driver.findElement (B y.id ("div_btnFileUpload")). click(); WebElement elementfile = driver.findElement (By.name ("Datendatei")); elementfile.sendKeys ("C: \\ Benutzer \\ Phantom \\ Dokumente \\ 1.txt") –

0

Sie können eine Drittanbieteranwendung AutoIt verwenden, um diese Aufgabe zu erfüllen.

Ihr AutoIt Skript wie diese

WinWaitActive("Choose File to Upload"); //File Upload is the dialog's title 
Send("C:\Users\xxx.xxx\Documents\filename.csv"); 
Send("{ENTER}"); 
0

@QATesting aussehen sollte - Sie können den Code wie unten aktualisieren:

Es sollte funktionieren, wie es für mich funktioniert. Und geben Sie Ihrer Testmethode Priorität gemäß Ihrer Anforderung. Nur zum Beispiel gab ich hier Priorität als @ Test (Priorität = 1). Ich hoffe, es sollte für dich funktionieren.

@Test(priority = 1) 
    public void CERTIFICATIONSSCREENUploadCertficationFilesValidation() 
      throws InterruptedException, AWTException { 

     //Click on File Upload Button 
     driver.findElement(By.xpath("//*[@id='certificationFile']")).click(); 
     Thread.sleep(1000); 
     // Set the file name in the clipboard. Also following line of code will search file in your computer so make sure you provide correct file path. 

     StringSelection s = new StringSelection("C:\\Doc\\CertificationFile.xls"); 
     Toolkit.getDefaultToolkit().getSystemClipboard().setContents(s, null); 
     Thread.sleep(1000); 

     Robot robot1 = new Robot(); 
     robot1.keyPress(KeyEvent.VK_ENTER); 
     robot1.keyRelease(KeyEvent.VK_ENTER); 
     robot1.keyPress(KeyEvent.VK_CONTROL); 
     robot1.keyPress(KeyEvent.VK_V); 
     robot1.keyRelease(KeyEvent.VK_V); 
     robot1.keyRelease(KeyEvent.VK_CONTROL); 
     robot1.keyPress(KeyEvent.VK_ENTER); 
     robot1.keyRelease(KeyEvent.VK_ENTER); 
     Thread.sleep(1000); 
}