C#学习教程:HtmlAgilityPack无法使用xpath找到列表选项这是Html(删除了必需品,删除了敏感信息):FrarmaExpressMaderasGarciaMiaris,SARicohPanamaUNOEXPRESSGarrettBlaserGretschOrielAntonioGrau这是代码:conststringxpath="//*[contains(@id,'一次性支付表格:vendor-select-')]/option[contains(text(),'UNOEXPRESS')]";vardriver=newFirefoxDriver(newFirefoxProfile()){Url="PATH_TO_FILE_CONTAINING_HTML_SHOWN_ABOVE"};线程.睡眠(2000);//WebDriver能找到吗?vare=driver.FindElementByXPath(xpath);Console.WriteLine(e!=null?"WebDriver成功":"WebDriver失败");//HtmlAgilityPack能找到吗?varsource=driver.PageSource;varhtmlDoc=newHtmlDocument{OptionFixNestedTags=true};HtmlNode.ElementsFlags.Remove("表单");htmlDoc.LoadHtml(来源);varnodes=htmlDoc.DocumentNode.SelectNodes(xpath);Console.WriteLine(nodes!=null?"Html敏捷包成功":"Html敏捷包失败");驱动程序退出();当我运行代码时,控制台显示:WebDriversuccessHtmlAgilityPackfailureobviously,WebDriverfinditem@XPath//*[contains(@id,'one-time-payment-form:vendor-select-')]/option[contains(text(),'UNOEXPRESS')]@id//*[contains(@id,'one-time-payment-form:vendor-select-')]/option[contains(text(),'UNOEXPRESS')],但不是HtmlAgilityPack有什么想法吗?这是“设计使然”。这与OPTION和FORM的思想相同。由于HtmlAgilityPack的历史,一些标签的处理方式有所不同。回到HTML3.2时代,OPTION并不总是关闭的,在HTML3.2中,它不是必需的。试试加上这个:以上是C#学习教程:HtmlAgilityPack无法使用xpath查找列表选项共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——HtmlNode.ElementsFlags.Remove("option");本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
