私はこの Web サイトでWatiNを使用しています: http://www.mcmaster.com/#socket-head-cap-screws/=k5c5q8 クラス名で各 h3 タグをクリックして、各ページを循環しようとしています。ページにhrefはありません。h3をクリックすると、ページはjavascriptを使用して次のページをロードすると思います。
これはこれまでの私のコードです:
types = doc.DocumentNode.SelectNodes("//h3[@class='AbbrPrsnttn_PrsnttnNm']");
foreach (HtmlNode type in types)
{
desc = type.InnerText.CleanText();
browser.div(Find.ById("ProdPrsnttnGrpCntnr")).Element(Find.ByClass("AbbrPrsnttn_PrsnttnNm")).Click();
System.Threading.Thread.Sleep(5000);
types = doc.DocumentNode.SelectNodes("//h3[@class='AbbrPrsnttn_PrsnttnNm']");
doc2.LoadHtml(browser.Html);
partTable = doc2.DocumentNode.SelectSingleNode("//div[@class='ItmTblGrp']");
MineNext(doc, doc2, browser, typeUrl, types, desc, partTable);
}
最も重要な行は
browser.div(Find.ById("ProdPrsnttnGrpCntnr")).Element(Find.ByClass("AbbrPrsnttn_PrsnttnNm")).Click();
このコードを実行すると、「AbbrPrsnttn_PrsnttnNm」の最初のクラスをクリックしますが、このページに戻ると、「Black-Oxide Alloy Steel」という名前の同じ要素を再度ロードしようとします。同じクラス名を持つ他の H3 を区別する方法がわからないため、これを何度もロードし続けます。これらの要素のコレクションを作成し、コレクションを介してforeach ループを実行し、WatiNを使用してそれぞれ個別にクリックする方法はありますか?