当找不到对象时,如何在Selenium remotewebdriver上使用集线器时,如何避免“服务器URL无响应”异常?

时间:2013-10-22 07:21:06

标签: selenium selenium-webdriver

这是我在第1行收到错误的代码。它不会返回true或false,而是抛出异常“服务器没有响应url:http://test:4444/wd/hub/session/1382359342795/element

在第1行获取错误:

Boolean tInputElement = driver.FindElement(By.Id("locator")).Enabled;
if (tInputElement.ToString() == "True")
{
   IWebElement InputElement=driver.FindElement(By.Id("locator"));
   InputElement.SendKeys(InputData);
}

请建议我如何避免没有响应错误并捕获objectnotfoundexception。请注意我使用Hub运行此代码。

这就是我的工作方式:

int _TotalTimeToWait = 0;

            int TotalTimeToWaitinSecs = 40;

            while (_TotalTimeToWait < TotalTimeToWaitinSecs && driver.FindElements(by).Count == 0)
            {
                Thread.Sleep(1000);
                _TotalTimeToWait++;

            }
            if (_TotalTimeToWait == 0) { driver.FindElement(by).Click(); Thread.Sleep(2000); }
            else { throw new ElementNotVisibleException(); }

            _TotalTimeToWait = 0;

1 个答案:

答案 0 :(得分:0)

据我所知,没有像Enabled for WebElement这样的属性,但它确实有一个IsEnabled()方法,所以试试:

if (driver.FindElement(By.Id("locator")).isEnabled())
{
   IWebElement InputElement=driver.FindElement(By.Id("locator"));
   InputElement.SendKeys(InputData);
}

或类似的东西:

IWebElement InputElement=driver.FindElement(By.Id("locator"));

if (InputElement != null && InputElement.isEnabled())
{
   InputElement.SendKeys(InputData);
}