我有一个for循环点击网站并测试链接是否正常工作。
但是当我进入一个没有链接的页面时,测试显然会失败。 但我无法弄清楚如何停止测试而不是失败。
这是我非常简单的循环
public void TestT2Links()
{
int count = LinkElements.Count;
for (int i = 3; i < count; i++)
{
PropertiesCollection.driver.FindElements(By.TagName("a"))[i].Click();
}
}
VS的错误记录
结果讯息:
OpenQA.Selenium.ElementNotVisibleException : element not visible
(Session info: chrome=40.0.2214.93)
(Driver info: chromedriver=2.10.267521,platform=Windows NT 6.1 SP1 x86_64)
结果StackTrace:
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebElement.Click()
关于如何阻止它的任何想法?
答案 0 :(得分:1)
在点击之前添加可见性检查:
var e = PropertiesCollection.driver.FindElements(By.TagName("a"));
for (int i = 3; i < e.Count; i++) {
if (e[i].Displayed) {
e[i].Click();
}
}