得到一个丑陋的例外。
Repro步骤。
从提供的链接安装网络驱动程序(2015年7月24日WebDriver) 创建控制台应用。 Nuget in Selenium.WebDriver,Selenium.Support。 运行代码,控制台窗口就可以了。
当代码命中driver.Url =“https://www.bing.com”时会引发异常,如下所示。
NoSuchWindowException - WebDriver.dll中发生未处理的“OpenQA.Selenium.NoSuchWindowException”类型异常
我的摘要如下:
using System.IO;
using OpenQA.Selenium;
using OpenQA.Selenium.Edge;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
namespace WebDriverPlay
{
public class msedgedev_sample
{
public static void RunMSEdgeDevSample()
{
Console.WriteLine("running MSEdgeDev Sample");
RemoteWebDriver driver = null;
string serverPath = "Microsoft Web Driver";
try
{
if (System.Environment.Is64BitOperatingSystem)
{
serverPath = Path.Combine(System.Environment.ExpandEnvironmentVariables("%ProgramFiles(x86)%"), serverPath);
}
else
{
serverPath = Path.Combine(System.Environment.ExpandEnvironmentVariables("%ProgramFiles%"), serverPath);
}
// location for MicrosoftWebDriver.exe
EdgeOptions options = new EdgeOptions();
options.PageLoadStrategy = EdgePageLoadStrategy.Eager;
driver = new EdgeDriver(serverPath, options);
//Set page load timeout to 5 seconds
driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(5));
//string _url = @"https://www.bing.com/";
string _url = @"http://www.google.com";
Console.WriteLine("_url=" + _url);
driver.Url = _url;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
if (driver != null)
{
driver.Close();
}
}
}
}
}
答案 0 :(得分:1)
行后:
driver = new EdgeDriver(serverPath,options);
执行,您应该看到一个命令窗口打开并连接到Edge。如果Edge浏览器已经打开,它将关闭它并打开一个新实例。根据您的错误,我不相信您看到了这种行为,我是否正确?如果是这样,某些东西可能会阻止WebDriver Server在本地启动(Defender ??)。检查条件设置serverPath。我无法解析Is64BitOperatingSystem,因此我选择了正确的路径并删除了其余的条件,将serverPath设置为MicrosoftWebDriver.exe的位置。
如果您的路径不正确,则不会超过"驱动程序"实例。不知何故,你正在向驱动程序.Url调用,我假设您正在使用该serverPath获得一些解决方案。因此,本地设备上的某些内容可能会阻止MicrosoftWebDriver.exe运行。
同样,您应该看到一个显示正确通信记录的命令提示符。
最后一个提示,您可以转到MicrosoftWebDriver.exe并运行它。然后你可以去:http://dev.modern.ie/testdrive/demos/webdriver/和"发送请求"使用默认值,应该是创建会话。您将看到结果发布到页面,并在命令窗口中查看通信记录。
请务必从与Edge不同的浏览器转到该页面,因为它会终止现有的Edge窗口,包括其自身。
答案 1 :(得分:1)
我有一点见解,但不是解决方法或修复,但......
在我的情况下,IE的Web驱动程序服务器与我的Web驱动程序服务器冲突...我仍然没有解决方法...我有一个在五个不同浏览器上运行的测试循环。
当我尝试添加边缘时,它不会在没有崩溃的情况下运行边缘。 调试文件夹中的Web驱动程序(对于基础五,包括IE)名称是IDENTICAL到我运行Edge时包含的名称。
我不知道如何解决它并满足测试要求......是的。 兄弟