Я новичок в C# и использую specflow
Я автоматизирую сценарий, в котором необходимо проверить несколько элементов, если они включены. Эти элементы относятся к разным разделам страницы и имеют разный xpath.
Подход, который я считаю
Преобразование данных в список веб-элементов
Перебрать список с помощью
foreach (webelement e in list)
{
element.isEnabled();
}
Я планирую оставить имя элемента таким же, как имя, указанное в datatable.
Отредактировал мой вопрос
Редактировать
Мой сценарий
Scenario: Validate G Functionality
Given Open URL
When verifies fields
| Gmail |
| Images |
Step Def
[When(@"verifies fields")]
public void WhenVerifiesFields(Table table)
{
for(int i=0;i<=table.Rows.Count;i++)
{
IWebElement ew= table.Rows[i] as IWebElement;
Assert.False(ew.Enabled);
}
Класс страницы:
[FindsBy(How = How.LinkText, Using = "Gmail")]
private IWebElement Gmail;
[FindsBy(How = How.LinkText, Using = "Images")]
private IWebElement Images;
Я получаю следующую ошибку
Validate G Functionality [FAIL]
[xUnit.net 00:00:06.38] System.NullReferenceException : Object reference not set to an instance of an object.
[xUnit.net 00:00:06.38] Stack Trace:
[xUnit.net 00:00:06.38] /*line pointed here is
ew.enabled*/C:\Users\StepDefinition\TestStepsOne.cs(53,0): at BillTrackerAutomation.StepDefinition.TestStepsOne.WhenVerifiesFields(Table table)
[xUnit.net 00:00:06.38] at lambda_method(Closure , IContextManager , Table )