C#无法从';字符串';至';系统行动<;字符串>';

C#无法从';字符串';至';系统行动<;字符串>';,c#,selenium,selenium-webdriver,C#,Selenium,Selenium Webdriver,我试图在列表中的每个实例上运行一个方法,但当我试图使用“.foreach()”方法执行此操作时,我得到了一个错误 “无法从'string'转换为'System.Action'” 我正在尝试调用的方法 public static string CheckSerial(List <string> serial, IWebDriver Driver) { Driver.Navigate().GoToUrl("http://www.dell.com/support/home/uk/e

我试图在列表中的每个实例上运行一个方法,但当我试图使用“.foreach()”方法执行此操作时,我得到了一个错误

“无法从'string'转换为'System.Action'”

我正在尝试调用的方法

public static string CheckSerial(List <string> serial, IWebDriver Driver)
{
    Driver.Navigate().GoToUrl("http://www.dell.com/support/home/uk/en/ukdhs1/product-support/servicetag/" + serial);
    return Driver.Title;
}
公共静态字符串检查序列(列表序列,IWebDriver驱动程序)
{
Driver.Navigate().gotour(“http://www.dell.com/support/home/uk/en/ukdhs1/product-support/servicetag/“+序列号);
返回驱动程序。标题;
}
我的主要方法

static void Main(string[] args)
{       
    IWebDriver driver = new FirefoxDriver();

    List<string> serials = new List<string>
    {
        "JPV6Q12",
        "JPV7Q12"
    };
    serials.ForEach(CheckSerial(serials, driver));
};
static void Main(字符串[]args)
{       
IWebDriver=新的FirefoxDriver();
列表序列=新列表
{
“JPV6Q12”,
“JPV7Q12”
};
ForEach(CheckSerial(serials,driver));
};
提前感谢大家在这方面的帮助, 关于,

列表。ForEach
期望将
操作作为参数,但这不是您传递它的内容

您应该这样称呼它:

public static string CheckSerial(string serial, IWebDriver Driver)
{
    Driver.Navigate().GoToUrl("http://www.dell.com/support/home/uk/en/ukdhs1/product-support/servicetag/" + serial);
    return Driver.Title;
}

serials.ForEach(s => CheckSerial(s, driver));
但我觉得奇怪的是,你对返回值什么也不做。如果您想使用它,并且在url无效的情况下,
gotour
不会引发异常,那么您可以:

var result = serials.Select(s => new { Serial = s, Title = CheckSerial(s, driver) });

如果您确实希望使
ForEach
的工作方式与最初类似,则可以将
CheckSerial
作为一种扩展方法,并:

public static void CheckSerial(this IWebDriver Driver, string serial) { ... }
serials.ForEach(driver.CheckSerial);

啊,对。忘了补充一点,我将把调用方法的结果存储在一个列表中,所以我有一个列表,列出了我得到的每个序列的每个web标题。在修复代码后,它就像一个符咒,我确实理解我做错了什么。非常感谢你的帮助,吉拉德!