0

.netのwebbrowserコントロールでhtml要素の位置を取得しようとしていますが、失敗します。SendMessage()P / Invokeを使用してマウスクリックを送信できるようにするには、ドキュメント全体またはwebbrowserコントロールに対する要素の正確な位置が必要です。 ..

ここから解決策を試しましたが、うまくいきませんでし た。C#を使用してWebブラウザーコントロールでHTML要素の絶対位置を取得する

これは、ページが非常に複雑なajaxとcssに依存しているためだと思います。

関数「WebBrowser1.Document.GetElementFromPoint()」は、正確なhtml要素を取得するのに問題なく機能しますが、その逆が必要です。

それ以外の場合は、正しい要素を取得するまで「GetElementFromPoint()」を使用して検索を続ける必要がありますか?

ありがとう。

4

3 に答える 3

0

次のようにするだけで、まったく同じ動作が得られる場合があります。

public void ClickHtmlElement(WebBrowser o, string htmlElementId)
{
  const string mask = @"javascript:void(document.getElementById('{0}').click())";
  string url = string.Format(mask, htmlElementId);
  o.Navigate(url);
}
于 2012-07-21T11:49:56.837 に答える
0

私はあなたの質問にコメントすることができないので、「答え」を作るつもりです。

  • JavaScript / InvokeMethodを介して要素をクリックすることの何が問題になっていますか?
  • また、要素の CSS を変更して、ビューポート全体をカバーし、Web ブラウザー コントロールのビューポート内の任意の場所をクリックできるようにすることもできます。

リンクからの解決策が機能しなかった理由を投稿する場合は、問題の解決策を提供することがより簡単になります.

于 2012-05-15T12:07:35.503 に答える