gpt4 book ai didi

c# - 如何遍历表以输入数据

转载 作者:行者123 更新时间:2023-12-04 10:48:49 26 4
gpt4 key购买 nike

我有一个使用 Specflow、Selenium 和 C# 的测试框架。

Specflow 测试步骤如下所示(我使用的是数据表):
我在贷款目的部分创建了以下贷款目的

    |loan purposes     |moreinfo |active|
|Debt Consolidation|True |True |
|Home Improvements |True |True |

所以很明显,这个数据表中有 2 行,顶行只是标题。

在上述步骤的步骤定义中,我首先确定表中的计数并将其存储为变量(在上述实例中正确地给了我 2 的计数)。然后我遍历表中的行数并单击 UI 上的“添加按钮”以根据测试步骤添加所需的行数 – 因此在本例中,它正确单击“添加”按钮两次,增加了 2空白行。
    var data = dataTable.CreateSet<ProductLoanPurposeData>();

var count = data.Count();
for (int i = 0; i < count; i++)
{
ClickLoanPurposeAddButton();
}

这就是我陷入困境的地方。
所以在 UI 上添加的每一行都有自己的类——我在我的 PageClass 中标记了这个元素“LoanPurposeRow”。
我想要做的是从 dataTable 中的第一行获取数据,并将其输入到 UI 的第一个“LoanPurposeRow”上。如果我的数据表中有更多行,那么我想移动到第二个“LoanPurposeRow”并从数据表中的第二行获取数据,依此类推。

我一直在网上搜索并查看了各种答案,但没有找到执行上述操作所需的内容。提前致谢

最佳答案

您的创建集正在将您的表转换为一个对象,因此您将相应地引用该对象。您需要像这样遍历数据对象。请注意,我删除了表格标题中的间距

foreach(var item in data)
{
driver.FindElement(By.Id("LoanPurposeRow")).SendKeys(item.loanpurposes);
ClickLoanPurposeAddButton();
}

无论“贷款目的”是什么,它都会抓取文本并将其输入到您的元素中。您需要根据您所在的任何行调整您的 By 选择器。你可以初始化一个计数器。

诚然,我没有在我的 selenium 代码中使用 CreateSet,我只是遍历如下表,并且它还允许您保持间距。
foreach(var item in data.Rows)
{
driver.FindElement(By.Id("LoanPurposeRow")).SendKeys(item["loan purposes"]);
ClickLoanPurposeAddButton();
}

无论采用哪种方式,第一次迭代都会从第一行获取所有数据,第二次迭代将从第二行获取所有数据,依此类推。

This link有更多关于 CreateSet 的信息

关于c# - 如何遍历表以输入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59575979/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com