2016-05-12 19 views
1

Ich habe den folgenden Code, um auf eine Schaltfläche zu klicken. Wenn ich es debugge, geht es über die Click() - Zeile, und die Schaltfläche wird geklickt (ich sehe ein neues Fenster wie erwartet angezeigt). Allerdings bleibt es dann nur eine Minute dort und kehrt dann mit einer Auszeit-Ausnahme zurück. Es geht nicht in die nächste Codezeile.Selenium RemoteWebDriver-Schaltfläche Klicken Sie auf die Zeitüberschreitung der Methodenmethode, obwohl die Schaltfläche geklickt wurde

Dies scheint auch nur für diese Schaltfläche passieren, wo ein neues Popup-Fenster gestartet wird, nachdem es geklickt hat. Andere Tasten auf der Seite scheinen in Ordnung zu sein.

Vielen Dank im Voraus für jede Einsicht!

var button = DriverFactory.Instance.FindElement(By.Id("ctl07_Customers_OCS_ListForms_btnAddCustomer")); 
button.Click(); // A new pop-up window is opened 
// Next line of code - It times out before it can hit the following line 
DriverFactory.Instance.SwitchTo().Window(DriverFactory.Instance.WindowHandles.Last()); 

Ausnahmedetails:

OpenQA.Selenium.WebDriverException war durch Benutzercode nicht behandelte HResult = -2146233088 Message = Die HTTP-Anforderung an den Remote-Server WebDriver für URL http://localhost:7055/hub/session/5e7fc81a-ed31-4310-9419-f1e5cc0d1b35/element/%7B96a49e56-d619-4765-b0a7-222f69da23bf%7D/click nach 60 Sekunden abgelaufen . Source = WebDriver Stacktrace: bei OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse (WebRequest Anfrage) bei OpenQA.Selenium.Remote.HttpCommandExecutor.Execute (Befehl commandToExecute) bei OpenQA.Selenium.Firefox.FirefoxDriverCommandExecutor.Execute (Befehl commandToExecute) bei OpenQA.Selenium.Remote.RemoteWebDriver.Execute (String driverCommandToExecute, Dictionary`2 Parameter) bei OpenQA.Selenium.Remote.RemoteWebElement.Click() bei OCSPortalFramework.Pages.BankPortal.ListFormsPage.ClickAddCustomer() in C : \ Src \ EPSQA \ Regression_Portals \ OCSPortal \ OCSPortalFramework \ Seiten \ BankPortal \ ListFormsPage.cs: Zeile 25 bei OCSPortalTests.OCS_146710_Add_Customer.OCS_146710_Add_Customer_Test() in C: \ Sr c_ EPSQA \ Regression_Portale \ OCSPortal \ OCSPortalTests \ OCS_146710_Add_Customer.cs: Zeile 52 InnerException: HResult = -2146233079 Nachricht = Die Anforderung wurde abgebrochen: Die Operation hat ein Zeitlimit überschritten. Quelle = System Stacktrace: bei System.Net.HttpWebRequest.GetResponse() bei OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse (WebRequest Anfrage) Innerexception:

Antwort

1

Umgehen hierfür ist:

try { 
button.click(); 
thread.sleep(300); 
} 
catch(Exception e) { 
//System.out.println("" +e.getMessage()); 
} 
+0

Ich habe versucht, beide Ihre Vorschläge, aber es war nicht wichtig, da die Ausnahme nach der Click() -Methode auftritt, so dass es nicht in die nächste Zeile kommt. Ich habe meine Frage aktualisiert, um das zu berücksichtigen. – AngieM

+0

versuchen Sie diese Lösung hier angegeben: http://StackOverflow.com/Questions/19403949/How-to-Handle-Pop-Up-in-Selenium-Webdriver-Susing-Java –

+0

Ich habe die folgende Zeile (DriverFactory.Instance.SwitchTo() .Window (DriverFactory.Instance.WindowHandles.Last());) nach der Click-Methode (meine C# -Version des Java-Posts), aber wieder war es egal, da die Click() -Methode die Ausnahme vor dem Code zurückgibt Fenster zu wechseln ist getroffen. – AngieM