2013-05-08 70 views
0

的HTML如下:如何使基於在網絡驅動程序類名斷言

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

需要提出的基於類的名稱從「圖標,主頁圖標顏色-1的變化斷言'到'icon-home icon-color-0',這取決於條件。

+1

不知道我理解你的問題,你正在尋找在這裏是一個斷言,或者一個如何根據類來確定如何操作元素? – aimbire 2013-05-08 12:11:00

+0

是的,如何基於類名來操作「item icon-home icon-color-1」。 item icon-home icon-color-1表示true,項目icon-home icon-color-0表示爲false。 – user2340124 2013-05-08 14:27:25

+0

我已經提供了一個答案,讓我知道它以任何方式幫助你,希望我能理解你的問題。 – aimbire 2013-05-08 14:47:25

回答

1

首先我必須警告你不能添加使用By它搜索時兩班,因爲「項目','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()和循環。

同時我也有,如果因爲它使一個更乾淨的代碼三元,爲您提供只與這兩個因素的工作

0

變化,按您的需求

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

也可以使用此

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