我發現這https://bitbucket.org/chromiumembedded/cef/wiki/UsingChromeDriver鏈接,它具有java綁定cef客戶端和Selenium驅動程序。綁定cefSharp客戶端與硒鉻驅動程序c#
所以我準備了一個給我使用它與C#窗口應用程序。我所做的是創建一個新的winapp項目86只包含與沒有錯誤或問題,運行下面的代碼:
using CefSharp;
using CefSharp.WinForms;
namespace ClientBrowser
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public ChromiumWebBrowser browser;
private void Form1_Load(object sender, EventArgs e)
{
var settings = new CefSettings();
settings.CefCommandLineArgs.Add("enable-npapi", "1");
settings.IgnoreCertificateErrors = true;
//settings.CefCommandLineArgs.Add("enable-system-flash", "1");
Cef.Initialize(settings);
browser = new ChromiumWebBrowser("");
this.Controls.Add(browser);
browser.Dock = DockStyle.Fill;
}
}
}
以上項目是作爲CEF客戶端以下新winapp項目低於86:
private void Form1_Load(object sender, EventArgs e)
{
try {
var options = new ChromeOptions();
options.BinaryLocation = @"path/ClientBrowser.exe";
//options.AddArgument("--log-level=3");
var service = ChromeDriverService.CreateDefaultService();
//service.HideCommandPromptWindow = true;
driver = new ChromeDriver(service,options); //chromedriver.exe
driver.Navigate().GoToUrl("http://stackoverflow.com/");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
現在,當我運行新以上項目,
chromedriver.exe說:
Starting ChromeDriver 2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4) on port 57883 Only local connections are allowed.
然後
ClientBrowser.exe
打開了與它無任何顯示沒有遇到錯誤,但60秒後,我得到:
The HTTP request to the remote WebDriver server for URL http://localhost:57883/session timed out after 60 seconds.
,但它應該打開http://stackoverflow.com/
對我來說,我不知道我在做什麼錯,我沒有包含任何selenium-server-standalone-x.y.z.jar
?我是否需要這個,如果是的話,請任何一個讓我知道如何包括它。
也試圖與Administrator Privilege
運行它,有沒有辦法直接綁定ChromeDriver
與ChromiumWebBrowser
,所以就沒有必要cefclient.exe
也試圖與RemoteWebDriver
:
try {
var options = new ChromeOptions();
options.BinaryLocation = @"C:\pathto\ClientBrowser.exe";
options.AddArgument("--remote-debugging-port=1131");
options.AddArgument("url=data:,");
//options.AddArgument("--log-level=3");
var service = ChromeDriverService.CreateDefaultService();
//service.HideCommandPromptWindow = true;
service.Port = 1131;
service.Start();
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.SetCapability(ChromeOptions.Capability, options);
driver = new RemoteWebDriver(service.ServiceUrl, capabilities); //DesiredCapabilities.Chrome()
//driver = new ChromeDriver(service,options); //chromedriver.exe
driver.Navigate().GoToUrl("http://stackoverflow.com/");
}
但RemoteWebDriver
也沒有爲我工作,現在真的卡住了,請
任何幫助或建議對我和其他想要像我這樣做的人都有很大的幫助,請提前致謝。
@amaitland請你幫助我。 –
我現在沒有時間回答問題。再次閱讀「CEF」文章,你很明顯錯過了一些東西。請不要直接詢問我的幫助。 – amaitland
謝謝,真的很抱歉!直接從你那裏詢問,我會再讀一遍。 –