这是我用来点击菜单中链接的代码
public static void ClickOnALink(IWebDriver driver, string linkText)
{
if (driver != null)
{
IList<IWebElement> links = driver.FindElements(By.TagName("a"));
Console.WriteLine("Clicking on the link which has the text");
foreach (var link in links)
{
if (link.Text == linkText)
{
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30);
link.Click();
break;
}
}
}
}
我发送菜单项文本。当我在调试模式下运行时,测试通过但在运行模式下菜单项没有被点击。有谁知道我在这里做错了什么?
我尝试在代码中各处放置等待消息,以便它等待整个页面加载。我还在运行模式下检查了链接文本,看看它是否与我提供的链接文本匹配
尝试更改您的方法以使用显式等待元素在单击之前显示和启用
public static void ClickOnALink(IWebDriver driver, string linkText)
{
if (driver != null)
{
IList<IWebElement> links = driver.FindElements(By.TagName("a"));
Console.WriteLine("Clicking on the link which has the text");
foreach (var link in links)
{
if (link.Text == linkText)
{
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
wait.Until(condition =>
{
return link.Displayed && link.Enabled;
});
link.Click();
break;
}
}
}
}