我正在测试第三方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"> </gpldns:gptag>
<gpldns:gptag class="googlePLAYRTWord 1">Speaking</gpldns:gptag>
<gpldns:gptag class="googlePLAYRTSpace 1"> </gpldns:gptag>
<gpldns:gptag class="googlePLAYRTWord 2">This</gpldns:gptag>
<gpldns:gptag class="googlePLAYRTSpace 2"> </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
{
...
}
答案 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;,如果没有这样的元素,则不会在代码中导致异常。