Webkit和C#修复脚本

时间:2014-10-16 04:53:13

标签: javascript c# webkit

好的,我在C#中创建了一个简单的应用程序,运行正常,很多东西都不正常,因为它需要我点击javascript链接。所以开始了另一个项目,这次我使用了webkit,除了一个项目之外,切换后一切功能都很完美。我需要一些帮助来修复它以使用webkit,因为它是我的应用程序的主要功能。在我不知道从哪里开始之前,我从未使用过webkit。

        private void timer2_Tick(object sender, EventArgs e)
    {
        HtmlElementCollection elems = web.Document.GetElementsByTagName("a");
        foreach (HtmlElement elem in elems)
        {
            String value = elem.GetAttribute("value");
            if (elem.InnerText == "Recruit")
            {
                elem.InvokeMember("click");
            }

        }
    }    

在切换工作之前,现在我有一个错误:

Error   3   Cannot implicitly convert type 'WebKit.DOM.NodeList' to 'System.Windows.Forms.HtmlElementCollection'    C:\Users\Mass\documents\visual studio 2013\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs  48  43  WindowsFormsApplication1    

非常感谢任何帮助。另外我需要保持原样使用GetElementsByTagName我无法切换到GetElementbyId。

编辑:对任何可能会发现这个有用的人,我曾经使用innertext做的最后一组错误。在阅读webkit文档后,我认为它不使用内部文本而是使用TextContent。

 //Looks for the value of the tag
            String value = ele.GetAttribute("value");
            //If innertext = value perform click
            if (ele.TextContent == "Recruit")
            {
                //invoke a click here
            }   

1 个答案:

答案 0 :(得分:0)

按如下所示更改您的代码并进行必要的更改

WebKit.DOM.NodeList elems = web.Document.GetElementsByTagName("a‌​");
foreach(WebKit.DOM.Element ele in elems)
{
  //Statements 
}