嵌入了Chromium的Selenium RemoteWebDriver

时间:2018-08-22 12:01:17

标签: c# selenium selenium-webdriver chromium-embedded

在这种情况下,我可能会误解某些事情,因此道歉。

我想将Selenium连接到都在同一应用程序中运行的Chromium Embedded预先存在的实例。我以为可以使用RemoteWebDriver并设置remote-debugging-port参数,但是却收到OpenQA.Selenium.WebDriverException和消息Unexpected error

我在追求什么?我需要控制运行Chromium的Window,因此无法进行标准的Selenium设置。

我已从控制ChromeDriver的生存期 here部分的示例2中获取了实现。

这是MainWindow.xaml.cs的完整内容。浏览器是CEF控件的x:Name

using System;
using System.Windows;

using CefSharp;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Chrome;

namespace SeleniumTest
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        private RemoteWebDriver web_driver;

        public MainWindow()
        {
            InitializeCefWithSettings();

            InitializeComponent();

            InitializeBrowser();
        }

        private void InitializeCefWithSettings()
        {
            CefSettings settings = new CefSettings();
            settings.CefCommandLineArgs.Add("enable-media-stream", "1");
            settings.CefCommandLineArgs.Add("disable-gpu-shader-disk-cache", "1");
            settings.CefCommandLineArgs.Add("remote-debugging-port", "9515");

            CefSharpSettings.WcfEnabled = true;

            Cef.Initialize(settings);
        }

        private void InitializeBrowser()
        {
            BrowserSettings browserSettings = new BrowserSettings();
            browserSettings.FileAccessFromFileUrls = CefState.Enabled;
            browserSettings.UniversalAccessFromFileUrls = CefState.Enabled;
            browserSettings.WebSecurity = CefState.Disabled;
            Browser.BrowserSettings = browserSettings;

            var options = new ChromeOptions();

            web_driver = new RemoteWebDriver(new Uri("http://localhost:9515"), options.ToCapabilities());
        }
    }
}

谢谢

0 个答案:

没有答案