【问题标题】:Press button on webbrowser按下网页浏览器上的按钮
【发布时间】:2013-09-14 06:17:58
【问题描述】:

我已经加载了一个 youtube 页面 (http://www.youtube.com/user/SeaNanners/videos),我想按“加载更多”按钮,我已经厌倦了几件事,例如:

foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("input"))
        {
            if (el.GetAttribute("class").Equals("yt-uix-load-more load-more-button yt-uix-button yt-uix-button-default yt-uix-button-size-default"))
            {
                    el.InvokeMember("click");
            }
        }

以及尝试就类似问题给出的其他答案; C# How to Click Button auttomaticly via WebBrowser Button click in web browser

似乎没有人真正按下按钮。

【问题讨论】:

  • 您是否找到了按钮,或者更确切地说会调用 el.InvokeMember?
  • 看看源码,也不是很清楚

标签: c# button browser


【解决方案1】:

让它工作起来,又快又脏,也许你可以把它写得更优雅一点;-)

更新:

我已经阅读了您之前询问的Question,并相应地更新了代码。 使用这段代码可以加载频道的所有视频(使用 webbrowserControl 可能需要一段时间)

private void button1_Click(object sender, EventArgs e)
{
    bool found = true;
    while (found)
    {
        if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
        {
            found = ClickLoadMoreButton();
            Application.DoEvents();
        }
    }
}

private bool ClickLoadMoreButton()
{
    var buttons = webBrowser1.Document.GetElementsByTagName("button");
    foreach (HtmlElement el in buttons)
    {
        var firstChild = el.FirstChild;
        if (firstChild != null)
        {
            if (!string.IsNullOrEmpty(firstChild.InnerText))
            {
                if (firstChild.InnerText.ToLower().Replace(" ", string.Empty).Equals("loadmore"))
                {
                    el.InvokeMember("click");
                    return true;
                }
            }
        }
    }
    return false;
}

【讨论】:

  • 对于我的 youtube,甚至没有任何按钮 ID 命名为那个。 i.imgur.com/TVTNLib.png
  • 再次阅读我的帖子,你搞错了。 (我希望点击“加载更多”按钮,即用户频道页面上的那个按钮,即我可以加载他们所有的视频i.imgur.com/HrE5tbD.png
  • 今晚我自己试一试,也许我会找出问题所在
  • 那会很有帮助,我需要一个解决方案。我不知道为什么这么难 D:
  • 我已经阅读了您之前提出的问题,请查看我的更新答案以加载频道的所有视频
猜你喜欢
  • 2023-02-05
  • 2019-02-20
  • 1970-01-01
  • 2013-06-24
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多