🐕

C# Visual webブラウザ クリックで要素取得

2025/02/01に公開

classNameがややこしい

string className = elem.GetAttribute("class"); // x

string className = elem.GetAttribute("className"); // o

マウスクリックでその要素を直で取得できる

webPreview.DocumentCompleted += WebPreview_DocumentCompleted;

private void WebPreview_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    if (webPreview.Document != null)
    {
        // ドキュメントのマウスダウンイベントにハンドラを追加
    webPreview.Document.MouseDown += new HtmlElementEventHandler(Document_Click);
    }
}

        private void Document_Click(Object sender, HtmlElementEventArgs e)
{
    if (webPreview.Document != null)
    {
        HtmlElement elem = webPreview.Document.GetElementFromPoint(e.ClientMousePosition);
        if (elem != null) {
            //elem.ScrollIntoView(true);
            // 要素の情報を取得
            string tagName = elem.TagName;                         // タグ名(例: DIV, P, SPAN)
            string elementId = elem.GetAttribute("id");            // id属性
            string className = elem.GetAttribute("className");         // class属性
            string innerText = elem.InnerText;                     // 要素の内部テキスト
            string innerHtml = elem.InnerHtml;                     // 要素の内部HTML
            string outerHtml = elem.OuterHtml;                     // 要素全体のHTML

            // 情報を表示
            Debug.WriteLine($"タグ名: {tagName}\nID: {elementId}\nクラス: {className}\nテキスト: {innerText}");
        }
        
    }
}

Discussion