1

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

在 line1 上出现错误:

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;
4

1 回答 1

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);
}
于 2013-10-22T14:22:18.303 回答