从包含 winappdriver 的 void 方法返回字符串

问题描述 投票:0回答:1

我正在尝试创建一个包含某些字符串循环的代码来获取文本,我需要“返回”在 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("代码已成功通过,退出代码为: " + 选择);'

我尝试使用 get/set 创建一个对象,但它不起作用,我尝试仅返回字符串,但我不能这样做,因为它是一个 void 方法,即使我需要更改大部分代码,我也希望得到一个解决方案:)

c# string return void winappdriver
1个回答
0
投票

定义全局静态属性。将您的值放在方法的末尾。确保正确处理线程安全。

© www.soinside.com 2019 - 2024. All rights reserved.