如何使用Selenium IDE查找包含特定文本的一组类

时间:2012-07-24 03:18:21

标签: css xpath selenium selenium-ide

我正在尝试测试搜索结果中是否显示正确的标题,摘要和链接。例如,在下面的示例中,我想确认至少有一个记录包含标题“Beta的标题”,该摘要包含文本“Beta的摘要”和一个名为“链接”的链接。

<ul>
  <li class="results">
    <h2 class="title">Title for Alpha</h2>
    <div class="summary">Summary for Alpha...</li>
    <div class="link"><a href="http://www.example.com">Link</a>
 </li>
 <li class="results">
    <h2 class="title">Title for Beta</h2>
    <div class="summary">Summary for Beta...</li>
    <div class="link"><a href="http://www.example.com">Link</a>
 </li>
</ul>

1 个答案:

答案 0 :(得分:0)

有很多方法可以选择它们。一个是使用CSS类。

HtmlUnitDriver driver = new HtmlUnitDriver();

driver.get("...");

List<WebElement> titles = driver.findElements(By.className("title"));
List<WebElement> summarys = driver.findElements(By.className("summary"));
List<WebElement> links = driver.findElements(By.className("link"));

for (WebElement webElement : titles) {
    String innerText = webElement.getText();

    // do your test....
}

如果您的页面结构更复杂,您也可以使用XPath来执行此操作。

如果您是Selenium的新手,您应该查看PageFactory模式。这是编写更清晰代码的好方法。

通过InnerText选择元素的不寻常方式,您可以使用XPath。 此XPath选择包含“Title for Alpha”的所有元素为InnerText

List<WebElement> titles = driver.findElements(By.xpath("//*[contains(text(), 'Title for Alpha')]"));