C#硒,否则检查

时间:2018-08-07 10:39:33

标签: c# selenium selenium-webdriver

我在Selenium Webdriver中使用C#。如果不满足“ if”条件,我想打破循环。我的代码如下。如果满足“ if”条件,我要继续循环直到不循环。

try 
{ 
    Directory.Move(file, folderWithFolders); 
} 

2 个答案:

答案 0 :(得分:0)

OP的问题描述很混乱

  
      
  1. 如果失败,我想在c#中使用硒来关闭循环。

  2.   
  3. 如果出现错误,我想单击链接并继续   循环。

  4.   

如果您想在遇到错误后立即结束循环,请使用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