使用c#在Selenium中定位具有相同类的元素

时间:2016-06-22 21:21:23

标签: selenium c#-4.0 selenium-webdriver

我正在尝试访问ABC。我知道简单的By.ClassName(“bb”)在这里不起作用。我还能如何访问这些内容。

<body>
 <div id="Frame">
 <div class="bb"></div>
 <div class="bb">ABC</div>
 </div>
</body>

3 个答案:

答案 0 :(得分:1)

您可以使用以下css选择器获取&#34; ABC&#34;的值。

.bb:nth-child(2)

答案 1 :(得分:0)

您可以使用"XPath" Expression来查找或查找元素。

示例:element = findElement(By.xpath("Your xpath expression");

对于您的XML使用后续行。

element = findElement(By.xpath("/body/div/div[@class='bb'][node()]");

答案 2 :(得分:0)

有一种方法可以在使用XPath的搜索中执行此操作,但我不是XPath专家。我可以使用CSS选择器为您提供解决方案。基本上你用类bb抓住所有DIV,然后搜索它们的文本以找到所需的文本。

String searchText = "ABC";
IReadOnlyCollection<IWebElement> divs = driver.FindElements(By.CssSelector("div.bb"));
foreach (IWebElement div in divs)
{
    if (div.Text == searchText)
    {
        break; // exit the for and use the variable 'div' which contains the desired DIV
    }
}