2016-05-18 7 views
0

Ich schreibe ein TestNg Skript, wo ich die modale Box schließen und die Operationen im Browser ausführen möchten. Ich bin in der Lage, das modale zu schließen, aber nicht in der Lage, etwas im Browser zu tun.Nach dem Schließen Modal Box, wie Sie Operationen auf dem Browser

driver.findElement(By.id("username")).clear(); 
      driver.findElement(By.id("username")).sendKeys(userName1); 
      driver.findElement(By.id("password")).clear(); 
      driver.findElement(By.id("password")).sendKeys(password1); 
      driver.findElement(By.id("Login")).click(); 
      Thread.sleep(5000); 
      switchtoLightining(); 
      driver.findElement(By.linkText("App Launcher")).click(); 
      driver.findElement(By.linkText("ICIX")).click(); 
      driver.findElement(By.linkText("Document Library")).click(); 
      driver.switchTo().frame(driver.findElement(By.id("vfFrameId"))); 
      driver.findElement(By.id("btn_AddDocument")).click(); 
      new Select(driver.findElement(By.id("ddTemplate"))) 
        .selectByVisibleText("GFSI Certification"); 
      driver.findElement(By.id("createButton")).click(); 
      // Get the current window handle 
      String winHandleBefore = driver.getWindowHandle(); 
      Thread.sleep(5000); 
      // Get the list of window handles 
      ArrayList<String> tabs2 = new ArrayList<String>(
        driver.getWindowHandles()); 
      System.out.println("size is:" + tabs2.size()); 
      driver.switchTo().window(tabs2.get(0)); 
    Robot rb = new Robot(); 
      rb.keyPress(KeyEvent.VK_TAB); 
      Thread.sleep(2000); 
      rb.keyPress(KeyEvent.VK_TAB); 
      Thread.sleep(2000); 
      rb.keyPress(KeyEvent.VK_TAB); 
      Thread.sleep(2000); 
      rb.keyPress(KeyEvent.VK_TAB); 
      Thread.sleep(2000); 
      rb.keyPress(KeyEvent.VK_TAB); 
      Thread.sleep(2000); 
      rb.keyPress(KeyEvent.VK_TAB); 
      Thread.sleep(2000); 
      rb.keyPress(KeyEvent.VK_TAB); 
      Thread.sleep(2000); 
      rb.keyPress(KeyEvent.VK_TAB); 
      Thread.sleep(2000); 
      rb.keyPress(KeyEvent.VK_TAB); 
      Thread.sleep(2000); 
      rb.keyPress(KeyEvent.VK_TAB); 
      Thread.sleep(2000); 
      rb.keyPress(KeyEvent.VK_TAB); 
      Thread.sleep(2000); 
      rb.keyPress(KeyEvent.VK_TAB); 
      Thread.sleep(2000); 
      rb.keyPress(KeyEvent.VK_ENTER);     

      Thread.sleep(2000); 
      // Click on the upload button 
      // Switch to the parent old window 
      driver.switchTo().window(winHandleBefore); 
      Thread.sleep(2000); 
      driver.findElement(By.xpath("//button[@class='slds-button slds-button--brand slds-m-horizontal--small']")).click();*/ 
      driver.findElement(By.xpath(".//[@id='uploadButton']")).click(); 
+0

welche Fehler msg Sie –

+0

bekommen werden Ich bekomme diese fehler- org.openqa.selenium.NoSuchElementException: Kann Element finden: { "Methode": "XPath", "Selektor ":" .//**[@ id = 'uploadButton'] "} Befehlsdauer oder Zeitüberschreitung: 25,13 Sekunden – user3168935

+0

Hallo ich bin hier in Ihrem Code verwirrt // Holen Sie sich das aktuelle Fensterhandle String winHandleBefore = driver.getWindowHandle() ; Hier nehmen Sie den Parent-Fenster-Handle nach rechts und dann wechseln Sie zu driver.switchTo(). window (tabs2.get (0)); // aber 0 index ist wieder für das übergeordnete Fenster daher infact Sie wechseln kein Fenster –

Antwort

0

Wie im Code angegeben, bevor Sie zu diesem Modellfenster wechseln, befinden Sie sich in einem Rahmen. so erwarte ich Sie können nach

  driver.switchTo().window(winHandleBefore); 

zu Rahmen wechseln müssen auf diesem Upload-Button zu klicken.

Wenn Upload-Schaltfläche nicht im Frame ist, sehen Sie einfach die gettitle oder getcurrenturl erhalten Sie Eltern oder winHandleBefore, um den Fahrer zu wechseln Fenster wechseln oder nicht. Wenn der Treiber korrekt zu winHandleBefore gewechselt hat, geben Sie den Upload-Element-Locator ein. bitte überprüfe das einmal.

Danke, Murali

+0

Danke. Du bist richtig Knopf ist innerhalb des Rahmens, Wechsel zu dem Rahmen arbeitete für mich.driver.switchTo(). Frame (driver.findElement (By.id ("vfFrameId"))); – user3168935