我正在尝试更新我的" chromedriver.exe ";还有我的msedgedriver。exe"当我自动启动程序时。我能够下载两个前任与他们的正确版本,但我需要访问它的版本从我的代码,我有一些麻烦的边缘。
为了得到我的chromedriver.exe版本,我做:
//I get the new version
new DriverManager().SetUpDriver(new ChromeConfig());
ChromeDriver driver = new ChromeDriver();
try{
ICapabilities capabilities = driver.Capabilities;
string driver_version = (capabilities.GetCapability("chrome") as Dictionary<string, object>)["chromedriverVersion"].toString());
}
这工作得很好,它得到chromedriver.exe版本很好,问题是当我尝试为我的EdgeDriver做同样的事情。代码都是一样的,声明EdgeDriver而不是ChromeDriver:
new DriverManager().SetUpDriver(new ChromeConfig());
EsgeDriverdriver driver = new EdgeDriver();
try{
ICapabilities capabilities = driver.Capabilities;
//this is where I cannot find the way of getting the version
string driver_version = (capabilities.GetCapability("edge") as Dictionary<string, object>)["edgedriverVersion"].toString());
}
我试过"edgeDriverVersion"和&;msedgedriverversion&;,但我找不到正确的方法。我在网上搜索了文档,但到目前为止还没有找到任何东西。提前谢谢你。
好了,我找到答案了。如果你得到了你的icapability,你可以打印出来,向你展示他们所拥有的信息。在我的情况下,如前所述,我对webdriver版本感兴趣,但你可以检查任何其他你需要的东西:
{
"acceptInsecureCerts": false,
"browserName": "chrome",
"browserVersion": "107.0.5304.107",
"chrome": {
"chromedriverVersion": "107.0.5304.62 (1eec40d3a5764881c92085aaee66d25075c159aa)"
(...)
}
}
Console.WriteLine(capabilities.ToString());吐。你只需要从那里得到你需要的信息。在我的情况下,我需要边缘版本,所以:
{
"acceptInsecureCerts": false,
"browserName": "msedge",
"browserVersion": "107.0.1418.52",
"ms:edgeOptions": {
"debuggerAddress": "localhost:50432"
},
"msedge": {
"msedgedriverVersion": "107.0.1418.56 (5b47a5c50066f665a52aa4155d30228091b46135)"
(...)
}
}
然后得到msedgeVersion:
string version = (capabilities.GetCapability("msedge") as Dictionary<string, object>)["msedgedriverVersion"].ToString();
我希望这对某人有帮助,我的头烧了一段时间!
(我删除了一些东西,以防你在对象中看到遗漏的东西)。