■LINQでリンクを取得してクリックして開く
最初に。このサンプルコードだけLINQを使っています。using System.Linq;を忘れずに。getElementsByTagName("A")で、Aタグをさらった後、Whereで目的とするAタグだけを取得しています。あとは、クリックするだけ。
サンプルコード
public void OpenLink() | |
{ | |
var IE = new SHDocVw.InternetExplorer(); | |
IE.Visible = true; | |
object URL = "http://www.google.com/"; | |
IE.Navigate2(ref URL); | |
IE.Wait(); | |
var doc = IE.Document as mshtml.IHTMLDocument3; | |
doc.getElementById("lst-ib").innerText = "ぐるぐる"; | |
IE.Wait(); | |
doc.getElementsByName("btnK").item(index: 0).click(); | |
IE.Wait(1000); | |
//googleの検索結果ページは、一旦空のページを表示後、動的に検索結果が追加される仕様のため、 | |
//検索結果の追加が終わるまでの間を1秒として、待機するように | |
var anchor = doc.getElementsByTagName("A").Cast<mshtml.IHTMLElement>() | |
.Where(x => x.innerText != null // innerTextがnullの場合があるので注意 | |
&& x.innerText.Contains("Wikipedia")) | |
.First(); | |
anchor.click(); | |
} |
この投稿へのリンク
リンクを作成