我在下面有这个代码,它通过面板中的所有链接,一旦找到相关链接,它就会点击它。我遇到的问题是,当我选择链接时,页面会在显示新页面之前重新加载。所以我想添加一个中断来摆脱循环,因为如果我不添加它,那么它将给我一个元素没有附加到文档错误。我相信发生此错误是因为它仍在尝试在页面重新加载时循环链接。
然而,当添加中断并运行测试时,没有任何反应,因为它没有选择链接。如何在点击链接后突破循环?
我不需要在页面重新加载后返回循环,我只是想摆脱循环,因为循环完成了找到链接并单击的工作。
public void SelectHomepageSearchPanelLink(string linkText)
{
var searchPanelLinks = _driver.FindElements(HomepageResponsiveElements.HomepageSearchPanelLinks);
foreach (var searchPanelLink in searchPanelLinks)
{
if (searchPanelLink.Text == linkText)
{
searchPanelLink.Click();
break;
}
else
{
throw new Exception($"{linkText} link not found by the responsive homepage search panel");
}
}
}
答案 0 :(得分:0)
试试这个:
public void SelectHomepageSearchPanelLink(string linkText)
{
var searchPanelLinks = _driver.FindElements(HomepageResponsiveElements.HomepageSearchPanelLinks);
var linkToClick;
foreach (var searchPanelLink in searchPanelLinks)
{
if (searchPanelLink.Text == linkText)
{
linkToClick = searchPanelLink;
break;
}
else
{
throw new Exception($"{linkText} link not found by the responsive homepage search panel");
}
}
linkToClick.Click();
}