selenium之ExpectedConditions類(lèi)
??以前使用eclipse感覺(jué)不是很習(xí)慣贬芥,現(xiàn)在使用intelliJ IDEA編寫(xiě)代碼。下面的是ExpectedConditions
類(lèi)下的一些方法妒蔚,使用IDEA時(shí)會(huì)有方法提示。
??下面的是我自己根據(jù)實(shí)際工程中遇到的問(wèn)題寫(xiě)的一些方法
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public IOSElement findElementByName(String name) {
IOSElement button = (IOSElement) new WebDriverWait(driver, 30)
.until(ExpectedConditions.visibilityOfElementLocated(By.name(name)));
return button;
}
??這段代碼實(shí)現(xiàn)的功能是設(shè)立一個(gè)顯式等待時(shí)間30秒,如果在30秒內(nèi)找到這個(gè)元素肴盏,就返回IOSElement
類(lèi)型的元素科盛。然后接下來(lái)就可以對(duì)這個(gè)元素進(jìn)行操作。
public List<IOSElement> findElementsByClassName(String className){
List<IOSElement> elements = (List)new WebDriverWait(driver, 30)
.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.className(className)));
return elements;
??這段代碼返回同一個(gè)界面上的所有的具有相同classname
的元素菜皂。
public IOSElement findElementByClassName(String ClassName,int i){
List<IOSElement> Element = (List)new WebDriverWait(driver, 30) .until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.className(ClassName)));
return Element.get(i);
}
??這段代碼以上段代碼為基礎(chǔ)贞绵,比如要取到具有相同classname
列表中所有元素中的第i個(gè)元素,就可以使用List
的get
方法,get(i)
取到列表中索引值為i
的對(duì)象幌墓。