如何在Web驱动程序中基于类名进行断言

时间:2013-05-08 10:18:53

标签: webdriver selenium-webdriver

HTML如下:

<section class="my-account-box-element">
    <span class="item icon-home icon-color-1"></span>
</section>

根据条件,需要根据类名从“icon-home icon-color-1”更改为“icon-home icon-color-0”进行断言。

3 个答案:

答案 0 :(得分:1)

首先,我必须警告您在使用By搜索时无法添加两个类,因为'item''item-home'在你的例子是相同的。我将假设主要区别在于'item-color-1''item-color-0'

WebElement myAccountBoxElement = driver.findElement(By.className("my-account-box-element"));
WebElement spanItem = myAccountBoxElement.findElement(By.tagName("span"));
boolean itemColor = (spanItem.getAttribute("class").contains("item-color-1")) ? true : false;

if (itemColor) {
    // do stuff for item-color-1 element
}
    // do stuff for the item-color-0 element
}

如果上面的代码是实际的HTML,上面的代码应该可以正常工作,如果有更多的代码,请改用findElements()并在其中循环。

如果因为它保留了更清晰的代码,我也选择了三元组,只要你只使用这两个元素

答案 1 :(得分:0)

根据您的需求进行更改

assertTrue(driver.findElements( By.Xpath(".//span[contains(@class,'icon-color-1')]")).size() != 0)

答案 2 :(得分:0)

也可以使用此

By.className("classname");
boolean isElementPresent = driver.findElement(By.className("classname"));