Я выполняю тестирование Selenium и хочу использовать FileHelpers для заполнения класса из файла CSV. Я хотел бы создать Selenium.By, используя пользовательский конвертер FileHelpers на основе текста поля и текста предыдущего поля.
Вот фрагменты моего кода:
using FileHelpers;
using By = OpenQA.Selenium.By;
[DelimitedRecord(";")]
public class WebElement
{
public string SelectorString;
[FieldConverter(typeof(ByConverter))]
public By Selector;
}
public class ByConverter : ConverterBase
{
public override object StringToField(string selectorType)
{
if (selectorType == "CssSelector")
return By.CssSelector("");
if (selectorType == "Id")
return By.Id("");
throw new ConvertException(selectorType, typeof(By));
}
}
Вы можете видеть, что селектор By создан с пустой строкой, потому что конвертер не знает, что такое SelectorString.
Я хотел бы сделать что-то вроде этого:
public class ByConverter : ConverterBase
{
public override object StringToField(string selectorType, string selectorString)
{
if (selectorType == "CssSelector")
return By.CssSelector(selectorString);
...}
...}
Это приведет к созданию полезного объекта Selenium.By.
Есть ли способ сделать что-то подобное?
В качестве альтернативы, есть ли способ изменить существующий объект By? Я еще не нашел способ. Что-то вроде:
By locator = By.Id("");
locator.SetValue("some string");