【发布时间】:2015-01-10 00:19:17
【问题描述】:
我正在使用以下内容单击网页上的元素:
driver.FindElement(By.Name("SearchIcon")).Click();
HTML:
<span class="ticon ti-search ti-1x" name="SearchIcon"> </span>
这应该是非常容易和严格的,但我得到了:
"{"errorMessage":"元素当前不可见,可能无法操作","request":{"headers":{"Accept":"application/json, image/png","Connection": "关闭","Content-Length":"0","Content-Type":"application/json;charset=utf-8","Host":"localhost:54912"},"httpVersion":"1.1" ,"method":"POST","post":"","url":"/click","urlParsed":
放一个
NUnit.Framework.Assert.IsTrue(driver.FindElement(By.Name("SearchIcon")).Enabled);
在 click 语句通过之前,显然该元素在那里并且一旦测试运行就可见,所以我不明白这里有什么问题。
【问题讨论】:
-
您可能应该检查该元素是
.Displayed而不是.Enabled。您可能需要等待。 -
ext 方法也没有成功.. NUnit.Framework.Assert.IsTrue(driver.FindElement(By.Name("SearchIcon"), 10).Displayed);公共静态类 WebDriverExtensions { 公共静态 IWebElement FindElement(此 IWebDriver 驱动程序,通过,int timeoutInSeconds){ if (timeoutInSeconds > 0) { var wait = new WebDriverWait(驱动程序,TimeSpan.FromSeconds(timeoutInSeconds));返回 wait.Until(drv => drv.FindElement(by)); } 返回 driver.FindElement(by); } }
-
在这里检查“设置窗口大小”解决方法github.com/angular/protractor/issues/585它对我有用
标签: c# selenium-webdriver phantomjs