我正在做一些Selenium测试,想使用FileHelpers从CSV文件填充类。我想做的是构建Selenium。使用基于字段文本和上一个字段文本的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");