Edge Browser WebDriver Failure
本文关键字:Failure WebDriver Browser Edge | 更新日期: 2023-09-27 18:09:20
试图使http://blogs.windows.com/msedgedev/2015/07/23/bringing-automated-testing-to-microsoft-edge-through-webdriver/的代码工作。
得到一个丑陋的异常。
重现步骤。
从提供的链接安装web驱动(2015年7月24日WebDriver)创建控制台应用程序。Nuget in Selenium。WebDriver Selenium.Support。运行代码,控制台窗口显示正常
当代码碰到driver.Url="https://www.bing.com"时,会抛出一个异常,如下所示。
NoSuchWindowException -类型为"OpenQA.Selenium"的未处理异常。NoSuchWindowException' occurred in WebDriver.dll
我的代码片段如下: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();
}
}
}
}
}
行后:
driver = new EdgeDriver(serverPath, options);
执行时,您应该看到一个命令窗口打开并连接到Edge。如果Edge浏览器已经打开,它将关闭它并打开一个新实例。基于你的错误,我不相信你看到了这个行为,我说的对吗?如果是这样,可能有什么东西阻止了WebDriver服务器在本地启动(Defender??)。检查条件设置serverPath。我无法让Is64BitOperatingSystem解析,所以我选择了正确的路径并删除了其余的条件,将serverPath设置为MicrosoftWebDriver.exe的位置。
如果你有不正确的路径,它将不会使它通过"driver"实例化。不知怎么的,你找到了司机。Url调用,我假设您正在使用该serverPath获得一些解决方案。因此,可能是本地设备上的某些东西阻止了MicrosoftWebDriver.exe的运行。
您应该再次看到一个命令提示符,其中显示了适当的通信日志。
最后一个提示,您可以转到MicrosoftWebDriver.exe并运行它。然后,您可以使用默认值转到:http://dev.modern.ie/testdrive/demos/webdriver/和"Send Request",这应该是创建会话。您将看到发布到页面的结果,并在命令窗口中看到通信的日志记录。
请确保从不同的浏览器进入该页面,因为它会杀死现有的Edge窗口,包括它自己。
我有一点见解,但不是一个解决方法或修复,但…
在我的情况下,IE的web驱动服务器与我的web驱动服务器的边缘冲突…我还是没有变通的办法…我在五种不同的浏览器上运行了一个测试周期。
当我尝试添加边时,它不会运行边而不崩溃。调试文件夹中的web驱动程序(对于包括IE在内的基数5)名称与我运行Edge时包含的名称相同。
我不知道如何修复它并满足测试要求…然而。兄弟mak