Нашел решение через запуск асинхронной операции и установки интервала выполнения функции с помощью свойства CruciatusFactory.Settings.SearchTimeout
using System;
using System.Threading.Tasks;
using Winium.Cruciatus.Core;
using Winium.Cruciatus.Elements;
using Winium.Cruciatus;
static class IfExistsClass
{
public static CruciatusElement GetIfExists(By element, CruciatusElement root, double timeout = 90000)
{
var StartDateTime = DateTime.Now;
CruciatusFactory.Settings.SearchTimeout = (int)timeout;
while ((DateTime.Now - StartDateTime).TotalMilliseconds < timeout) ;
{
var FindElement = Task<CruciatusElement>.Run(() =>
{
var elementFound = root.FindElement(element);
return elementFound;
});
if (FindElement.Wait(TimeSpan.FromMilliseconds(30000)))
return FindElement.Result;
else
Console.WriteLine("Timeout поиска элемента");
}
return null;
}
}