2017-12-21 25 views
-2

ist die Momentaufnahme der Anmeldung: Pop-up enter image description herejava, Selen Web-Treiber

Ich bin Neuling in Selenium WebDriver. Ich habe diesen Code geschrieben, um Navigationsbefehle herauszufinden, aber sobald der Browser geöffnet wird, gibt es ein Login-Popup, das angezeigt wird. Ich habe versucht, es zu schließen, indem ich classname oder xpath benutze, aber die Zeitüberschreitung tritt auf.

Muss ich explizite Wartezeit in diesem Fall verwenden? Könnten Sie mir helfen, herauszufinden, was das Problem ist?

public class TestNavigateCommands { 
WebDriver driver; 
public void invokeBrowser(){ 
    try { 
     System.setProperty("webdriver.chrome.driver", "/Users/himaja/Documents/chromedriver"); 
     ChromeOptions options=new ChromeOptions(); 
     options.addArguments("start-fullscreen"); 
     driver=new ChromeDriver(options); 
     driver.manage().deleteAllCookies(); 
     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
     driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS); 
     navigateCommands(); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 
public void navigateCommands(){ 
    try { 
     driver.navigate().to("https://www.flipkart.com/"); 
     Thread.sleep(4000); 
     driver.findElement(By.className("2AkmmA _29YdH8")).click(); 
     //driver.findElement(By.xpath("//*[@class='_2AkmmA _29YdH8']")).click(); 
     driver.findElement(By.xpath("//span[starts-with(text(),'Applicances')]")).click(); 
     driver.findElement(By.xpath("//span[contains(text(),'Microwave Ovens')]")).click(); 
     Thread.sleep(2000); 
     driver.navigate().back(); 
     Thread.sleep(2000); 
     driver.navigate().forward(); 
    } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 



} 


public static void main(String[] args) { 
    TestNavigateCommands test1= new TestNavigateCommands(); 
    test1.invokeBrowser(); 

} 

}

Ausnahme:

[43,366] [SCHWEREN]: Timed out Nachricht vom Renderer Empfangen: 37,150 [43,373] [SCHWEREN]: Timed out Nachricht vom Renderer Empfangen: -0,007 org.openqa.selenium.TimeoutException: Timeout

+0

Hallo Himaja :) Was meinst du mit „nicht arbeiten“? Passiert nichts? Hast du eine Ausnahme? Erscheint ein Gif eines Hundes auf dem Bildschirm und lacht über dich? – mrfreester

+0

Es gibt Timeout-Ausnahme, die ich bekomme. Das Popup ist nicht geschlossen und die anderen Funktionen werden nicht ausgeführt. – Himaja

+0

können Sie die Timeout-Ausnahme zu Ihrer Frage hinzufügen? Das enthält wahrscheinlich wertvolle Debugging-Informationen. – mrfreester

Antwort

0

diesen Code Versuchen Sie es helfen können:

public class TestNavigateCommands { 
    public static void main(String[] args) throws InterruptedException { 
      try {     
        System.setProperty("webdriver.chrome.driver", "/Users/himaja/Documents/chromedriver"); 
        WebDriver driver = new ChromeDriver(); 
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
        WebDriverWait wait=new WebDriverWait(driver,50); 

        driver.manage().window().maximize(); 

        driver.navigate().to("https://www.flipkart.com/");   
        driver.findElement(By.xpath("//button[contains(@class,'YdH8')]")).click(); 


        wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath("//a[@title='Appliances']//span")))); 
        driver.findElement(By.xpath("//a[@title='Appliances']//span")).click();   

      } catch (Exception e) { 
       e.printStackTrace(); 
      }   
     } 
    } 
+0

Ich habe diesen Code ausprobiert und es hat geholfen. Die Seite hat so lange gedauert, bis sie geladen wurde und es hat endlich funktioniert. Danke für die Hilfe. – Himaja

0
public class TestNavigateCommands { 
WebDriver driver; 

public void invokeBrowser() { 
    try { 
     System.setProperty("webdriver.chrome.driver", "/Users/himaja/Documents/chromedriver"); 
     ChromeOptions options = new ChromeOptions(); 
     options.addArguments("start-fullscreen"); 
     driver = new ChromeDriver(options); 
     driver.manage().deleteAllCookies(); 
     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
     driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS); 
     navigateCommands(); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

public void navigateCommands() { 
    try { 
     driver.navigate().to("https://www.flipkart.com/");   
     driver.findElement(By.xpath("//div[@class='_3Njdz7']//button[@class='_2AkmmA _29YdH8']")).click(); 
     WebDriverWait wait = new WebDriverWait(driver, 30); 
     wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath("//a[@title='Appliances']//span")))); 
     driver.findElement(By.xpath("//a[@title='Appliances']//span")).click();   
     Thread.sleep(2000); 
     driver.navigate().back(); 
     driver.navigate().forward(); 
    } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 
+1

Können Sie Ihren Code korrekt formatieren und einen Kontext für die Antwort hinzufügen (zB kurz erklären, wie Ihr Code das Problem behebt)? – roelofs

+0

können Sie diesen Code verwenden und es ausprobieren. Lassen Sie mich wissen, wenn Sie immer noch das gleiche Problem haben. –

+0

Bitte formatieren Sie Ihren Code in der Antwort. – roelofs

Verwandte Themen