c#selenium使用xpath查找元素

时间:2016-05-25 15:20:33

标签: c# css selenium xpath

我试图在div中找到一个div的元素... 这是代码示例:

<div class="col-md-4">
    <div style="display: none;" id="multiplier-win" class="label label-success multiplier">2X</div>
    <div style="display: block;" id="multiplier-lose" class="label label-danger multiplier">0X</div>
    <div style="display: none;" id="multiplier-tie" class="label label-warning multiplier">1X</div>
</div>

我想找到class="label label-success multiplier"并检查她是否style="display:none"

我如何用c#写这个?

请帮帮我 谢谢!

2 个答案:

答案 0 :(得分:1)

在您的情况下,元素具有唯一ID。因此,不应按类名查找(可能导致多个/不准确的结果),而应使用By.Id(...)。用手写比xpath更容易。

假设你的IWebDriver实例被称为驱动程序。代码如下所示:

IWebElement element = driver.FindElement(By.Id("multiplier-win"));
String style = element.GetAttribute("style");
...

我不想冒犯你,但你应该在发布之前使用google。这是关于selenium的多个教程中的基本代码。

编辑:如果您正在寻找班级的多个元素:

ReadOnlyCollection<IWebElement> elements = driver.FindElements(By.ClassName("..."));

foreach (IWebElement el in elements)
{
       ...
}

答案 1 :(得分:0)

查找元素:

IWebElement element = driver.FindElement(By.XPath("//div[@class='label label-success multiplier']"));

要检查是否显示元素,将返回bool(如果显示则为true,如果未显示则为false)。如果你使用philn的元素列表代码,你可以将这一行放入他的foreach语句中,它会告诉你哪些显示。

el.Displayed;