🐕
C# Visual webブラウザ クリックで要素取得
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