将变量传递给FindsBy硒

时间:2019-06-17 12:38:45

标签: c# selenium htmlelements

我想将变量传递给element。我的html就像

<input class="form-control" data-bind="textInput: code, attr: { id: 'myTable_code_' + $index() }" type="text" id="myTable_code_0" style="">

我声明了

这样的元素
  [FindsBy(How = How.Id, Using = "myTable_code_" + myVariable), CacheLookup]
  private HtmlElement _Code;

但是偏离路线不起作用。有谁知道如何将varialbe传递给属性。我正在使用c#

2 个答案:

答案 0 :(得分:1)

您不能这样做,注释是存储在类文件中的常量值。您无法在运行时计算它们。

以下应工作:-     使用=“ myTable_code_0”)

看到Can the annotation variables be determined at runtime吗?

尽管它是针对Java的,但我认为它也适用于C#。

答案 1 :(得分:0)

不是使用find by,而是字符串格式?您将需要根据您的设置进行一些调整,但是根据您要使用的值,您可以执行以下操作...

        string myVariable = "blah";
        string value =  Browser.FindElement_byXPath(string.Format("//input[@id='myTable_code_0']//h4[contains(text(), '{0}')]", myVariable)).Text;