0

私はこの 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を使用してそれぞれ個別にクリックする方法はありますか?

4

1 に答える 1

1

この質問に答えてくれてありがとう。今までの仕事で感じた最高の気分を私に与えてくれます。

                   var h3s = browser.Div(Find.ById("ProdPrsnttnGrpCntnr")).ElementsWithTag("h3").ToArray();
                    for (int i = 1; i < h3s.Count(); i++)
                    {
                        h3s[i].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);
                        h3s = browser.Div(Find.ById("ProdPrsnttnGrpCntnr")).ElementsWithTag("h3").ToArray();
                    }
于 2012-11-14T16:18:10.040 に答える