如何使用硒C#计算嵌套的div?

时间:2018-08-06 12:02:18

标签: c# selenium selenium-webdriver xpath css-selectors

Sub test()

Range("D:D").ClearContents
n = Range("B2")Range("B3").Formula = Range("L11").Formula
For q = 1 To n
    Range("D1")(q) = Range("B3")
    Range("B4") = q  
Next 
Worksheets("14D_Result").Range("F2").Value = Worksheets("Engine").Range("mean").Value

End Sub

我的页面中有两个bodycell div,我想计算第二个中的嵌套div。 必需的输出:-我希望count = 2

尝试方法:-

<div class="bodyCells">
      <div style="position:absolute;left:0;">
         <div style="overflow:hidden;">
            <div title="AAA" class="pivotTableCellWrap">AAA</div>
            <div title="BBB" class="pivotTableCellWrap">BBB</div>
         </div>
         <div>
            <div title="AAA-123" class="pivotTableCellWrap">AAA-123</div>
            <div title="BBB-123" class="pivotTableCellWrap">BBB-123</div>        
         </div>
      </div>
</div>

2 个答案:

答案 0 :(得分:0)

根据 HTML ,您提供了来计算第二个(父项)<divs> 中的嵌套子项<div>,您可以使用以下任一种以下解决方案:

  • CssSelector

    List<string> elements = driver.FindElements(By.CssSelector("div.bodyCells div.pivotTableCellWrap[title*='-']"));
    Console.WriteLine(elements.Count);
    
  • XPath

    List<string> elements = driver.FindElements(By.XPath("//div[@class='bodyCells']//div[@class='pivotTableCellWrap' and contains(@title,'-')]"));
    Console.WriteLine(elements.Count);
    

答案 1 :(得分:0)

您可以使用下面经过修改的XPath来获取第二个嵌套div的计数

XPath: //div[@class='bodyCells']/div/div[2]/div

代码:

var rowCount = _driver.FindElements(By.XPath("//div[@class='bodyCells']/div/div[2]/div")).Count;
Console.WriteLine(rowCount);