我创建了一个播放器,它将使用selenium和C#中的ChromeDriver自动化chrome.它工作正常.
发布我面临的问题是,当它为ChromDriver创建一个对象时,它将启动ChromeDriver应用程序,该应用程序会弹出,然后Chrome将加载.它非常完美,因为该应用程序正在为我加载chrome.
无论如何,我可以打开隐藏的ChromeDriver吗?
我想创建一个可以在我的C#应用程序和扩展之间进行通信的桥.
以下是我真正想要的解释:我创建了一个扩展,它将获取HTML元素的详细信息.
但每次启动Chrome时都会启动.有没有什么方法可以向Chrome扩展程序发送消息以获取HTML元素详细信息,然后将其发送回C#应用程序?
我可以使用'XMLHttpRequest'将信息传递给C#,但问题是,当我的页面被加载时它就开始了.
让我向你解释我想要的东西:
当我打开我的chrome时,我的扩展程序将自动启动,并且我的background.cs(后台页面)也会启动.(这里我想要一些客户端 - 服务器类的通信)
使用我的C#应用程序,我将一些数据发送到chrome扩展(例如StartFetchingDocument)
一旦我的扩展获得此消息(即StartFetchingDocument),那么我的扩展应该将contect-sctipt.js注入选定的选项卡.
我知道将数据发送回C#需要的其余部分,但是在这一阶段我只是陷入困境 - 如何将数据从C#发送到我的扩展(后台页面).
如何在Java Script中将大数据发送到WebSocket?
使用下面的代码,我能够发送126个字符的数据,但不能超过这个数字.(用C#编写)
public static void SendData(string text)
{
foreach (SocketClient client in ClientList)
{
if (client.Client.Connected)
{
try
{
NetworkStream l_Stream = client.Client.GetStream();
List<byte> lb = new List<byte>();
lb = new List<byte>();
lb.Add(0x81);
int size = text.Length;
lb.Add((byte)size);
lb.AddRange(Encoding.UTF8.GetBytes(text));
l_Stream.Write(lb.ToArray(), 0, size + 2);
}
catch
{
CloseClient(client);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮帮我吗?我试着用很多东西,但没有一个能为我工作.
我正在使用Chrome 25.