我在这个网站上使用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单独单击每个元素?