使用Web驱动程序(使用c#)如何验证此span类是否存在?

时间:2014-07-17 15:07:58

标签: selenium selenium-webdriver webdriver c#-3.0

我正在测试第三方Chrome扩展程序,该扩展程序允许用户在Google文档中说出文字。以下是Google文档中生成的代码:

<span class="kix-wordhtmlgenerator-word-node" style="font-size:15px;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;">
<span>
<gpldns:gptag class="googlePLAYRTWord 0">I'm</gpldns:gptag>
<gpldns:gptag class="googlePLAYRTSpace 0">&nbsp;</gpldns:gptag>
<gpldns:gptag class="googlePLAYRTWord 1">Speaking</gpldns:gptag>
<gpldns:gptag class="googlePLAYRTSpace 1">&nbsp;</gpldns:gptag>
<gpldns:gptag class="googlePLAYRTWord 2">This</gpldns:gptag>
<gpldns:gptag class="googlePLAYRTSpace 2">&nbsp;</gpldns:gptag>
<gpldns:gptag class="googlePLAYRTWord 3 googlehighlighted">text</gpldns:gptag>
</span>

我感兴趣的特定代码块是上例中的最后一个span类:

<gpldns:gptag class="googlePLAYRTthWord 3 googlehighlighted">

我需要做的是验证班级名称是否包含&#34; googlehighlighted&#34;。类名包含的内容并不重要,只要它包含&#34; googlehighlighted&#34;。请注意,在这种情况下,我感兴趣的课程是最后一项,但它并不总是最后一项

任何帮助都会非常感激。感谢

编辑/更新

对于c#,我可以使用以下内容:

if (driver.FindElements(By.ClassName("googlehighlighted")).Count() > 0)
{
    ...
}
else
{
    ...
}

2 个答案:

答案 0 :(得分:1)

我认为这对你有用:

IWebElement lastElement = driver.FindElement(By.XPath("//span[@class='kix-wordhtmlgenerator-word-node']/span/*[last()]"));
if (lastElement.GetAttribute("class").Contains("googlehighlighted")
{
    System.Console.WriteLine("Last element class does contain googlehighlighted");
}
else
{
    System.Console.WriteLine("Last element class does not contain googlehighlighted");
}

答案 1 :(得分:1)

您可以测试类似的内容:

driver.findElements(By.className("googlehighlighted")).size() > 0

请注意,我使用复数&#34; findElements&#34;,如果没有这样的元素,则不会在代码中导致异常。