在这种情况下,我可能会误解某些事情,因此道歉。
我想将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());
}
}
}
谢谢