2017-05-19 2 views
1

Meine Frage zu finden, ist in Bezug auf ein Web-Elemente Ortung (a Schaltfläche Durchsuchen) in einer Webseite, um eine Datei mit Selen (Java) zu laden, aber wenn meine Kontrolle zu diesem bestimmten Fenster Schalt das enthält den Durchsuchen-Button, der keines der Elemente findet. Ich teile den HTML-Code, der verwendet wird, um die Schaltfläche zum Durchsuchen zu finden, zusammen mit meinem Skript, das in Java geschrieben wurde (mit Eclipse-Software). Der Fehler, den ich bekomme, ist "Keine solche Element-Ausnahme". Bitte lassen Sie mich wissen, wenn Sie weitere Details zu dem Problem benötigen. Ich öffne das Fenster "checkin files", indem ich auf den Link "Add New File" klicke, aber das Problem ist, dass das Steuerelement nicht an dieses Fenster übergeben wird.kann nicht ein Element in Selen mit Java

Folgenden sehen Sie die Java-Code:

//Step 5: Click the Browse Button 
for(String browseWindowHandle : driver.getWindowHandles()) 
    driver.switchTo().window(browseWindowHandle); 
    driver.manage().window().maximize(); 
WebElement clickBrowseButton=driver.findElement(By.name("bfile0")); 
    wait.until(ExpectedConditions.visibilityOf(clickBrowseButton)); 
    clickBrowseButton.click(); 
Runtime.getRuntime().exec("C:\\Users\\tnag\\Desktop\\FileUpload.exe"); 
//Step 5: Click the Done button in the File Upload window 
WebElement addNewFileDone= 
    driver.findElement(By.xpath("//table/tbody/tr/td/table/tbody/tr/td[2]/a")); 
    addNewFileDone.click(); 
    Thread.sleep(5000); 
    System.out.println("addNewFileDone");  
    } 

HTML Code

+0

Ich sehe keine Eingabe-Tags geschlossen. Können Sie versuchen, indem Sie sie in Ihrem HTML-Code schließen? Sie müssen Code in der Frage auch eher aus den Pastebins verweisen, so dass es Community-Mitgliedern hilft, leicht zu debuggen. – harshavmb

+0

https://stackoverflow.com/help/how-to-ask könnte Ihnen zu einem gewissen Grad helfen – harshavmb

+0

Hallo, danke für die Fragen. Das ist die Art, die man hier mürrisch angehen kann. Aber bitte nehmen Sie ein paar Änderungen an Ihrer Frage vor: Lesen Sie https://stackoverflow.com/help/how-to-ask einfach den Code und den Screenshot hier ohne Link. Fügen Sie auch die Ausnahme hinzu (Stack-Trace). – guenhter

Antwort

0

Hier ist die Lösung Ihrer Frage-

Sie müssen sich kümmern ein paar Dinge hier:

  1. Ein Großteil des Codeblocks unter Click the Browse Button Kommentar wird nicht verwendet.
  2. Sie haben eine for-Schleife initiiert, aber nicht strukturiert. Möglicherweise möchten Sie es vollständig entfernen.
  3. driver.manage().window().maximize(); sollte in Ihrem Code viel früher gewesen, während Sie zuerst die URL zugreifen. Vielleicht möchten Sie es entfernen.
  4. Während Sie tun WebElement clickBrowseButton = driver.(...); sicherzustellen, dass die name Locator den Blättern Button eindeutig identifiziert.
  5. Nächste isDisplayed() ist nicht mehr notwendig, so dass Sie es möglicherweise entfernen möchten.
  6. clickBrowseButton.click(); sollte alles tun, Öffnen der Windows File Selector.
  7. Falls Sie alle Referenzen des dialogebox zu AutoIT geben richtig Runtime.getRuntime.exec(...) die Datei sicher passieren würde.
  8. Je nach Ihrem Web-App-Design müssen Sie möglicherweise auf die Schaltfläche Upload klicken.

Lassen Sie mich wissen, ob dies Ihre Frage beantwortet.

+0

Vielen Dank für die Überprüfung des Codes tatsächlich das Problem, das ich konfrontiert bin, ist, dass das Steuerelement nicht in das Eincheck-Dateifenster umgeschaltet wird, aufgrund dessen ich nicht in der Lage bin, auf die Schaltfläche Durchsuchen zu klicken. – titli0216

+0

@ titli0216 Wie gesagt, wenn du dich um die oben genannten Punkte 1-6 kümmerst, wäre dein Selen-Java-Teil perfekt. Aber in Ihrem Fall ist Punkt Nr. 7 entscheidend, um den von AutoIT festgelegten Pfad zu erhalten. Möglicherweise müssen Sie die AutoIT-Einstellungen erneut aufrufen. Können Sie darüber nachdenken, meine Antwort als Lösung für Ihre Frage zu akzeptieren? Vielen Dank. – DebanjanB

+0

@ titli0216 Ich bin froh, dir helfen zu können :) Als ich deinen Code überprüft habe, war er in einem Anhang – DebanjanB

0

Vielen Dank für Ihre wertvollen Vorschläge tatsächlich fand ich die Ursache, warum das Web-Element nicht aufgerufen wurde, war es, weil ich verpasste Umstellung auf einen iframe, weshalb mein AutoIT-Skript wurde nicht aufgerufen. Das Problem wurde behoben. Danke allen für die Hilfe. Diese Plattform ist sehr hilfreich.

Verwandte Themen