Javascript C#查找并按下JS创建的按钮

Javascript C#查找并按下JS创建的按钮,javascript,c#,asp.net,.net,Javascript,C#,Asp.net,.net,根据StackOverflow先前回答的问题,我想出了以下代码来定位并按下web浏览器上的按钮: HtmlElementCollection allButtons = webBrowser1.Document.GetElementsByTagName("button"); foreach (HtmlElement button in allButtons) { listView1.Items.Add(button.OuterText);

根据StackOverflow先前回答的问题,我想出了以下代码来定位并按下web浏览器上的按钮:

HtmlElementCollection allButtons = webBrowser1.Document.GetElementsByTagName("button");
        foreach (HtmlElement button in allButtons) {
            listView1.Items.Add(button.OuterText);
            if (button.OuterText == "Like") {
                button.InvokeMember("Click");
            }
        }
问题是,这段代码(我认为)引用了页面源代码,而我需要查找稍后由Javascript创建的按钮。按钮没有ID,也不在表中

我目前正在使用.Net Webbrowser类


有谁知道一个使用C#刮取JS数据的好教程,或者任何其他可以帮助我实现目标的教程吗

您可以创建一个javascript,单击该按钮,然后将该脚本注入webbrowser并运行:

HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
HtmlElement script = webBrowser1.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)script.DomElement;
element.text = "function clickOnLike() { var btns = document.GetElementsByTagName('button'); for(var i=0;i<btns.length;i++) if(btns[i].InnerHTML == 'Like'){btns[i].click(); break;} }";
head.AppendChild(script);
webBrowser1.Document.InvokeScript("clickOnLike");
HtmlElement head=webBrowser1.Document.GetElementsByTagName(“head”)[0];
HtmleElement脚本=webBrowser1.Document.CreateElement(“脚本”);
IHTMLScript元素=(IHTMLScript元素)script.doElement;

element.text=“function clickOnLike(){var btns=document.GetElementsByTagName('button');for(var i=0;i您可以创建一个javascript,单击该按钮,然后将该脚本注入webbrowser并运行:

HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
HtmlElement script = webBrowser1.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)script.DomElement;
element.text = "function clickOnLike() { var btns = document.GetElementsByTagName('button'); for(var i=0;i<btns.length;i++) if(btns[i].InnerHTML == 'Like'){btns[i].click(); break;} }";
head.AppendChild(script);
webBrowser1.Document.InvokeScript("clickOnLike");
HtmlElement head=webBrowser1.Document.GetElementsByTagName(“head”)[0];
HtmleElement脚本=webBrowser1.Document.CreateElement(“脚本”);
IHTMLScript元素=(IHTMLScript元素)script.doElement;

element.text=“function clickOnLike(){var btns=document.GetElementsByTagName('button');用于(var i=0;我注意到我编写的javascript代码可能不准确,但我只想给你一个答案Ashkan的ideaThanks,这可以工作,但我落后了一步。我需要首先确保按钮存在,而它没有ID。我能在javascript加载完成后以某种方式获得页面源代码吗?这样我可以ld查找特定的单词并确保它存在。您可以使用javascript完成所有操作。顺便说一句,
DocumentCompleted
event filres在文档加载后完成。您可以尝试这样做,在这种情况下,可能需要使用计时器等待一点,比如100毫秒。但是我认为javascript选项更好,并且帮助注意,Java我写的脚本代码可能不准确,但我只是想给你一个答案,Ashkan,这可以工作,但我落后了一步。我需要首先确保按钮存在,而它没有ID。我能在Javascript加载完成后以某种方式获得页面源代码吗?这样我可以查找特定的单词和d确保它存在。您可以使用javascript完成所有操作。顺便说一句,
DocumentCompleted
event filres在文档加载后完成。您可以尝试这样做,在这种情况下,可能需要使用计时器等待一点,比如100毫秒。但我认为javascript选项更好,也不太麻烦