我在Selenium Webdriver中使用C#。如果不满足“ if”条件,我想打破循环。我的代码如下。如果满足“ if”条件,我要继续循环直到不循环。
try
{
Directory.Move(file, folderWithFolders);
}
答案 0 :(得分:0)
OP的问题描述很混乱
如果失败,我想在c#中使用硒来关闭循环。
如果出现错误,我想单击链接并继续 循环。
如果您想在遇到错误后立即结束循环,请使用break
。
另一方面,使用continue
将跳过其余的语句,并转到循环的下一个迭代。
else
{
...if there is an error
rows.ElementAt(0).Click();
break;
}
尽管如此,但我只是注意到您的绝对XPATH使用情况。绝对不建议使用absolute,最好使用相对简洁且较短的xpath。 Webapp的更新肯定会破坏脚本的xpath。
答案 1 :(得分:0)
这就是您要的
if (rows == null)
{
continue;
}
else
{
rows.ElementAt(0).Click();
break;
}
但是,最好使用while循环实现来实现更好的代码实践和效率;
IReadOnlyCollection<IWebElement> rows = null;
bool rowsFound = false;
while (!rowsFound)
{
rows = driveri.FindElements(By.XPath("//*[@id=\"app\"]/div/span[3]/div/div/div/div/div/div/div[2]/div"));
if(rows!=null)
{
rowsFound = true;
}
}
rows.ElementAt(0).Click();
在一个不相关的主题上,除非绝对必要,否则使用Thread.Sleep()也是一个坏习惯。大多数(如果不是一直)都希望使用WebDriverWait实现。您可以在这里找到有关此内容的更多信息:https://seleniumhq.github.io/selenium/docs/api/dotnet/html/T_OpenQA_Selenium_Support_UI_WebDriverWait.htm