Edge Browser WebDriver Failure



试图使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

相关内容

最新更新