Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 嵌入铬的Selenium RemoteWebDriver_C#_Selenium_Selenium Webdriver_Chromium Embedded - Fatal编程技术网

C# 嵌入铬的Selenium RemoteWebDriver

C# 嵌入铬的Selenium RemoteWebDriver,c#,selenium,selenium-webdriver,chromium-embedded,C#,Selenium,Selenium Webdriver,Chromium Embedded,我可能误解了一些事情,如果是这样的话,我道歉 我想将Selenium连接到一个预先存在的Chromium实例,这两个实例都运行在同一个应用程序中。我认为使用RemoteWebDriver并设置远程调试端口参数可以实现这一点,但是我得到了一个OpenQA.Selenium.WebDriverException,其中包含消息意外错误 我所追求的可能吗?我需要控制Chromium运行的窗口,因此无法进行标准的Selenium设置 在控制ChromeDriver的生命周期一节中,我采用了示例2中的实现

我可能误解了一些事情,如果是这样的话,我道歉

我想将Selenium连接到一个预先存在的Chromium实例,这两个实例都运行在同一个应用程序中。我认为使用RemoteWebDriver并设置
远程调试端口
参数可以实现这一点,但是我得到了一个
OpenQA.Selenium.WebDriverException
,其中包含消息
意外错误

我所追求的可能吗?我需要控制Chromium运行的窗口,因此无法进行标准的Selenium设置

在控制ChromeDriver的生命周期一节中,我采用了示例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());
        }
    }
}
使用系统;
使用System.Windows;
使用头孢沙普;
使用OpenQA.Selenium.Remote;
使用OpenQA.Selenium.Chrome;
名称空间SeleniumTest
{
/// 
///MainWindow.xaml的交互逻辑
/// 
公共部分类主窗口:窗口
{
专用RemoteWebDriver web_驱动程序;
公共主窗口()
{
初始化ecefwithSettings();
初始化组件();
InitializeBrowser();
}
私有void初始化ecefwithsettings()
{
CefSettings=新的CefSettings();
settings.CefCommandLineArgs.Add(“启用媒体流”、“1”);
settings.CefCommandLineArgs.Add(“禁用gpu着色器磁盘缓存”,“1”);
settings.CefCommandLineArgs.Add(“远程调试端口”,“9515”);
CefSharpSettings.WcfEnabled=true;
初始化(设置);
}
私有void初始值设定项browser()
{
BrowserSettings BrowserSettings=新建BrowserSettings();
browserSettings.FileAccessFromFileUrls=CefState.Enabled;
browserSettings.UniversalAccessFromFileUrls=CefState.Enabled;
browserSettings.WebSecurity=CefState.Disabled;
Browser.BrowserSettings=浏览器设置;
var options=新的ChromeOptions();
web_driver=新的RemoteWebDriver(新Uri(“http://localhost:9515)、options.ToCapabilities());
}
}
}

谢谢

上次我看到您无法连接到正在运行的实例,现在支持吗?您可以将
Puppeter Sharp
连接到正在运行的实例。您到底想用
Selenium
做什么?