我正试图创建一个代码,其中包含一些字符串的循环以获得文本,并且我需要“返回”我在else-if(select==“t”)中获得的字符串。。。我该怎么做??
代码的一部分
public static void LoopId(WindowsDriver session, string[] element, int duration, string select)
{
int i = 0, count = 0; bool leave = false;
if (duration == 0) { duration = 10; }
do{ try{
AppiumWebElement loop = session.FindElementByAccessibilityId(element[0]);
foreach (var l in element) { if (count != 0) { loop = loop.FindElementByAccessibilityId(l); } count++; }
leave = true;
if ( select == "c") { AuxiliarMethods.LoopIdClick(loop, 0); }
else if ( select == "t") { select = loop.Text; } // return select...
else if (select == "dc") { loop.Click(); session.Mouse.DoubleClick(null); }
else { AuxiliarMethods.LoopIdSendKeys(loop, select, 0); }
} catch { i++; } } while (i < duration && leave == false);
if (i == duration) { select = "Error!!!"; Assert.Fail("Something went wrong, cant find the loop on code"); }
}
因此,解释这段代码是一个循环,有很多事情需要处理。尝试从外部应用程序(例如其他控制台应用程序)单击/双击/获取文本,我想调用这个方法,因为它是一个我花了很多时间来查找我想要的元素的方法,。。。所以我创建了一个void来做这件事,但它不会将“select”返回到我调用它的原始方法,(所以我使用了“AuxiliarMethod.LoopId(session,element[],0,select);”并且我想将select返回到我从中调用它的方法),这样我就可以将从LoopId方法获得的字符串用于其他事情,。。。例如执行'Assert.Pass(“成功传递的代码带有退出代码:\r\n”+select);'
我试着用get/set创建一个对象,但效果很好,我试着只返回字符串,但我做不到,因为这是一个void方法,即使我需要更改大部分代码,我也希望得到一个解决方案:)