我有以下代码来点击按钮。当我调试它时,它会经过Click()行,然后单击该按钮(我可以看到一个新窗口按预期弹出)。然而,它只是坐在那里一分钟,然后返回一个超时异常。它不会转到下一行代码。
此外,这似乎只发生在此按钮上,在该按钮单击后会启动一个新的弹出窗口。页面上的其他按钮似乎没问题。
提前感谢任何见解!
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());
异常详细信息:
OpenQA.Selenium.WebDriverException未被用户代码处理 的HResult = -2146233088 Message =对URL http://localhost:7055/hub/session/5e7fc81a-ed31-4310-9419-f1e5cc0d1b35/element/%7B96a49e56-d619-4765-b0a7-222f69da23bf%7D/click的远程WebDriver服务器的HTTP请求在60秒后超时。 来源=的webdriver 堆栈跟踪: 在OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest请求) 在OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(命令commandToExecute) 在OpenQA.Selenium.Firefox.FirefoxDriverCommandExecutor.Execute(命令commandToExecute) 在OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute,Dictionary`2参数) 在OpenQA.Selenium.Remote.RemoteWebElement.Click() 在C:\ Src \ EPSQA \ Regression_Portals \ OCSPortal \ OCSPortalFramework \ Pages \ BankPortal \ ListFormsPage.cs中的OCSPortalFramework.Pages.BankPortal.ListFormsPage.ClickAddCustomer():第25行 位于C:\ Src \ EPSQA \ Regression_Portals \ OCSPortal \ OCSPortalTests \ OCS_146710_Add_Customer.cs:第52行 的InnerException: 的HResult = -2146233079 消息=请求已中止:操作已超时。 来源=系统 堆栈跟踪: 在System.Net.HttpWebRequest.GetResponse() 在OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest请求) InnerException:
答案 0 :(得分:1)
解决这个问题的方法是:
try {
button.click();
thread.sleep(300);
}
catch(Exception e) {
//System.out.println("" +e.getMessage());
}