使用specflow C#

时间:2016-03-14 12:10:58

标签: c# cucumber specflow

我正在尝试自动化网页。在该网页中有一行有多个列,有些列中有文本框,而这样做我可以将值填充到第一个文本框但是无法填充其他文本框的值。他们只有共同的类名。我正在使用BDD和specflow这样做。这是我用于在第一个文本框中填充值的代码:

 public void ThenIFilThesheet(TechTalk.SpecFlow.Table table)
    {
        foreach (var row in table.Rows)
        {
            var textarea = WebBrowser.Current.TextField(Find.ByClass(row["field"]));
            if (!textarea.Exists)
                Assert.Fail("Class not found ");
            textarea.TypeText(row["value"]);
        }
    }

这是相同的功能文件:

Then I fil the sheet
| field         | value |
| actuals_hours | 8     |

1 个答案:

答案 0 :(得分:0)

一个可能的解决方案是获取你需要填写的每个文本框的XPath,然后通过XPath定位元素并插入值。

然后你的桌子看起来不像华而不实,但它会起作用:

| xpath                | value |
| //*[@id="wmd-input"] | 8     |
(Just an example of the xpath)

使用您的代码,通过XPath找到元素。

这当然是,如果我正确理解你的问题。如果我没有,你的意思是:只有第一个字段被填写,而你期望填写所有字段,尝试“foreach”。