【发布时间】:2014-12-10 09:14:37
【问题描述】:
在单击按钮时的 Windows 应用程序中,我需要刷新所有打开的 Chrome 浏览器实例,或者至少刷新我机器上的“活动”选项卡。
我的代码如下:
[DllImport("user32.dll")]
static extern bool PostMessage(IntPtr hWnd, UInt32 Msg, int wParam, int lParam);
private void btnGetBrowserProcess_Click(object sender, EventArgs e)
{
const UInt32 WM_KEYDOWN = 0x0100;
const int VK_F5 = 0x74;
Process[] procsChrome = Process.GetProcessesByName("chrome");
foreach (Process chrome in procsChrome)
{
if (chrome.MainWindowHandle != IntPtr.Zero)
{
PostMessage(chrome.MainWindowHandle, WM_KEYDOWN, VK_F5, 0);
}
}
}
这适用于 IE 和 Mozilla,但不适用于 Chrome
【问题讨论】:
-
Chrome 将页面创建为可能导致问题的单独进程
-
但我无法将刷新命令传递给任何 chrome 进程
-
有什么理由不使用 WebDriver + ChromeDriver? code.google.com/p/selenium/wiki/ChromeDriver
标签: c# asp.net windows google-chrome browser