Selenium webdriver从评论中找到字符串(C#)

时间:2017-12-25 19:09:31

标签: c# html selenium xpath

我在网站上有这样的一行:

<!--<td class="points">100.000</td>-->

我怎样才能接受&#34; 100.000&#34;并把它放在一个字符串? 我在c#中尝试过类似的东西:

string points = driver.FindElement(By.XPath("/html/body/div[2]/div[2]/table[1]/tbody/tr[2]/comment()")).Text;

但是当我尝试取这个数字并输入字符串时,我得到了这样的错误:

  

&#34; xpath表达式的结果   &#34; / HTML /体/格[2] / DIV [2] /表[1] / tbody的/ TR [2] /注释()&#34;是:[对象   评论]。它应该是一个元素。&#34;

有任何想法吗?

1 个答案:

答案 0 :(得分:0)

不,您不能直接使用SELECT SUM(CASE MONTH(str_to_date(sm.BillDate, '%d/%m/%Y')) WHEN 1 THEN sm.GrandTotal ELSE 0 END) AS 'January', SUM(CASE MONTH(str_to_date(sm.BillDate, '%d/%m/%Y')) WHEN 2 THEN sm.GrandTotal ELSE 0 END) AS 'February', SUM(CASE MONTH(str_to_date(sm.BillDate, '%d/%m/%Y')) WHEN 3 THEN sm.GrandTotal ELSE 0 END) AS 'March', SUM(CASE MONTH(str_to_date(sm.BillDate, '%d/%m/%Y')) WHEN 4 THEN sm.GrandTotal ELSE 0 END) AS 'April', SUM(CASE MONTH(str_to_date(sm.BillDate, '%d/%m/%Y')) WHEN 5 THEN sm.GrandTotal ELSE 0 END) AS 'May', SUM(CASE MONTH(str_to_date(sm.BillDate, '%d/%m/%Y')) WHEN 6 THEN sm.GrandTotal ELSE 0 END) AS 'June', SUM(CASE MONTH(str_to_date(sm.BillDate, '%d/%m/%Y')) WHEN 7 THEN sm.GrandTotal ELSE 0 END) AS 'July', SUM(CASE MONTH(str_to_date(sm.BillDate, '%d/%m/%Y')) WHEN 8 THEN sm.GrandTotal ELSE 0 END) AS 'August', SUM(CASE MONTH(str_to_date(sm.BillDate, '%d/%m/%Y')) WHEN 9 THEN sm.GrandTotal ELSE 0 END) AS 'September', SUM(CASE MONTH(str_to_date(sm.BillDate, '%d/%m/%Y')) WHEN 10 THEN sm.GrandTotal ELSE 0 END) AS 'October', SUM(CASE MONTH(str_to_date(sm.BillDate, '%d/%m/%Y')) WHEN 11 THEN sm.GrandTotal ELSE 0 END) AS 'November', SUM(CASE MONTH(str_to_date(sm.BillDate, '%d/%m/%Y')) WHEN 12 THEN sm.GrandTotal ELSE 0 END) AS 'December' FROM sales_master sm WHERE YEAR(str_to_date(sm.BillDate, '%d/%m/%Y'))='2017' GROUP BY MONTH(str_to_date(sm.BillDate, '%d/%m/%Y')) 定位评论 - 它只适用于实际元素 - 而不是文本或评论节点

你需要另一种方式。我们的想法是首先使用FindElement()获取页面的完整源代码,或者使用driver.PageSourceelm.GetAttribute("innerHTML") elm.GetAttribute("outerHTML")来获取包含注释节点的元素的内部或外部HTML在您的情况下,1}}可以定义为包含注释节点的行:

elm

然后,您有几个选项可以从HTML字符串中提取注释。我认为最好的是使用 HTML解析器,例如HTML Agility Pack