Tag: internet explorer

如何在纯托管C#中编写IE 8附加组件

我想为IE 8编写一个附加组件,但我想使用纯托管C#。 这可能吗? 我知道最长的时间我们只谈论C ++。

在Windows 7中使用C#运行Selenium测试时出现“IEDriverServer不存在”错误

我正在使用带有C#的WebDriver开发Automation框架。 它与Firefox一起工作正常,但不适用于IE。 我收到以下错误: IEDriverServer.exe不存在 – 文件c:\ users \ administrator \ documents \ visual studio 2010 \ projects \ TestProject1 \ TestProject1 \ _bin \ Debug \ IEDriverServer.exe不存在。 该驱动程序可以从http://code.google.com/p/selenium/downloads/list下载 我使用的是IE 9和Windows 7。 IWebDriver driver = new InternetExplorerDriver(); driver.Navigate().GoToUrl(“http://www.google.co.uk”); IWebElement queryBox = driver.FindElement(By.Name(“q”)); queryBox.SendKeys(“The Automated Tester”); queryBox.SendKeys(Keys.ArrowDown); queryBox.Submit(); 也可以看看 。

iframe中元素的getElementById

我当前的代码适用于iframe之外的元素。 我应该如何使用getElementById在iframe中获取元素? 我的最终目标是在 … 标记内写入文本。 我没有使用webBrowser控件 – 这是针对iexplore的外部实例 HTML示例 代码示例 foreach (InternetExplorer ie in new ShellWindowsClass()) { if (ie.LocationURL.ToString().IndexOf(“intranet_site_url”) != -1) { IWebBrowserApp wb = (IWebBrowserApp)ie; while (wb.Busy) { Thread.Sleep(100); } HTMLDocument document = ((HTMLDocument)wb.Document); // FETCH BY ID IHTMLElement element; HTMLInputElementClass hitem; element = document.getElementById(“tinymce”); hitem = (HTMLInputElementClass)element; hitem.value = first_name; // FETCH BY […]

从Javascript调用C#BHO方法

我正试图弄清楚如何在页面内的Javascript中调用我的BHO对象中的C#方法。 我在C ++ / ATL / Com中找到了很多关于如何做的页面,例如: 浏览器帮助程序对象和脚本选项 从Javascript调用BHO方法? 我试图在C#中正确地实现它,但我无法让它工作,可能是因为我有一些我不明白的COM问题。 我正在使用C#4.0。 以下是代码的相关部分: using SHDocVw; using mshtml; using System.Runtime.InteropServices; [ComVisible(true), Guid(“300736C4-DCDA-4DB0-90AD-4510A12EBBC6”), ClassInterface(ClassInterfaceType.None), ProgId(“My Extension”)] public class BrowserHelperObject : IObjectWithSite { const int DISPATCH_PROPERTYPUT = 4; const int FDEX_NAME_ENSURE = 2; const uint LOCALE_USER_DEFAULT = 0x0400; WebBrowser browser; … public void OnDocumentComplete(dynamic frame, ref dynamic url) { […]

在CAB中部署C#ActiveX以供Internet Explorer使用

我正在拼命尝试将用于在C#中开发的IE的ActiveX部署为CAB存档。 我已经阅读了很多资源(其中一些来自StackOverflow),看起来很多人都遇到了同样的问题。 我尝试了3个解决方案:a)创建CAB VS项目,b)使用CABARC手动创建CAB,在INF中注册COM,c)手动创建CAB并启动msiexec 。 他们都没有工作。 我甚至尝试过d)创建一个启动msiexec的引导程序无济于事(因为有人建议只在Vista上启动msiexec无法工作)。 我正在运行Windows Vista,但我的项目甚至无法在XP上的IE6上运行。 当我使用MSI安装ActiveX时,所有Windows都可以。 显然CAB的东西不起作用,我找不到调试整个过程的正确方法。 任何帮助表示赞赏。

在C#的现有IE窗口的选项卡中启动URL

当browserExe指向Firefox,Safari或Chrome时,以下代码会在现有浏览器窗口中打开链接。 当指向IEXPLORE.EXE(IE7)时,将打开一个新窗口。 ProcessStartInfo pi = new ProcessStartInfo(browserExe, url); Process.Start(pi); 当IE是默认浏览器时,这将按预期在现有窗口中打开一个选项卡。 ProcessStartInfo pi = new ProcessStartInfo(url); Process.Start(pi); 当IE不是默认浏览器时,如何重用现有的IE窗口?

实现IDispatch :: Invoke由WebBrowser控件调用

我正在尝试在Controlling Download and Execution部分中Controlling Download and Execution他们在本文中解释的内容。 我理解该上下文中的Web Browser Control不是.NET的WebBrowser 。 我想要做的是控制WebBrowser控件下载的内容。 我一直在寻找这个并且总是在csEXWB ,它有一个巨大的代码,我无法破译。 到目前为止我所做的是inheritance.NET的WebBrowser ,通过使用[ComVisible(true)]属性使我的inheritance类com可见,将此方法添加到我的类(取自csEXWB): [DispId(HTMLDispIDs.DISPID_AMBIENT_DLCONTROL)] public int Idispatch_AmbiantDlControl_Invoke_Handler() { return (int)m_DLCtlFlags; } 然后调用这行代码,其中Browser是我的派生类的一个实例: IfacesEnumsStructsClasses.IOleControl oleControl = Browser.ActiveXInstance as IfacesEnumsStructsClasses.IOleControl; oleControl.OnAmbientPropertyChange(IfacesEnumsStructsClasses.HTMLDispIDs.DISPID_AMBIENT_DLCONTROL); 所以我希望oleControl将调用我的Idispatch_AmbiantDlControl_Invoke_Handler方法,而不是。 我不知道怎么样,这可能是我的代码丢失的原因,是oleControl应该知道调用我的Idispatch_AmbiantDlControl_Invoke_Handler方法的对象。 我上面链接的文章it will call your IDispatch::Invoke 。 你的意思是什么意思。 我如何告诉oleControl哪个对象是我的IDispatch 。 希望我有任何意义。

以编程方式移动鼠标光标

首先,我在http://swigartconsulting.blogs.com/tech_blender/2005/08/how_to_move_the.html找到了此代码: public class Win32 { [DllImport(“User32.Dll”)] public static extern long SetCursorPos(int x, int y); [DllImport(“User32.Dll”)] public static extern bool ClientToScreen(IntPtr hWnd, ref POINT point); [StructLayout(LayoutKind.Sequential)] public struct POINT { public int x; public int y; } } 将以下代码粘贴到按钮的click eventhandler中: Win32.POINT p = new Win32.POINT(); px = button1.Left + (button1.Width / 2); py = button1.Top + […]