我們用硒的webdriver如何儲存網頁列表元素到數組我們如何儲存weblist元素放入數組使用硒的webdriver
如:
weblist.get(j).findElement(By.className("accordion-toggle")).getText()
它包含元素的列表中,我們如何存儲元素融入到陣列。
我們用硒的webdriver如何儲存網頁列表元素到數組我們如何儲存weblist元素放入數組使用硒的webdriver
如:
weblist.get(j).findElement(By.className("accordion-toggle")).getText()
它包含元素的列表中,我們如何存儲元素融入到陣列。
假設你知道列表中的元素的數量,使用Java的List接口:
List<String> list = new ArrayList<String>();
for(j=0;j<weblist.size();J++){
list.add(weblist.get(j).findElement(By.className("accordion-toggle")).getText())
}
改用findElement
,你必須使用硒的webdriver的findElements
方法。它會直接返回網頁元素列表。要使用通過硒的功能創建自定義方法getBy將使用通過抽象類。
public List<WebElement> findElements(String locator, long... timeOut) {
try {
if (timeOut.length == 1 && timeOut[0] == 0) {
return driver.findElements(getBy(locator));
} else if (timeOut.length == 1 && timeOut[0] > 0) {
waitForPresent(locator, timeOut[0]);
} else {
waitForPresent(locator);
}
} catch (Exception e) {
}
return driver.findElements(getBy(locator));
}
String xPath = "xpath=//*[@text='some text']";
//String xPath = "name='some text'";
//String xPath = "id=xxxx";
private By getBy(String locator) {
locator = getProps().getString(locator, locator);
String[] parts = locator.split("=", 2);
By by = null;
switch (parts[0].trim()) {
case "xpath":
by = By.xpath(parts[1]);
break;
case "name":
by = By.name(parts[1]);
break;
case "link":
by = By.linkText(parts[1]);
break;
case "id":
by = By.id(parts[1]);
break;
case "css":
by = By.cssSelector(parts[1]);
break;
default:
throw new RuntimeException("invalid locator");
}
return by;
}
你可以嘗試這樣的
//to catch all web elements into list
List<WebElement> myList=driver.findElements(By.className("accordion-toggle"));
//myList contains all the web elements
//if you want to get all elements text into array list
List<String> all_elements_text=new ArrayList<>();
for(int i=0; i<myList.size(); i++){
//loading text of each element in to array all_elements_text
all_elements_text.add(myList.get(i).getText());
//to print directly
System.out.println(myList.get(i).getText());
}
謝謝
使用weblist.size()時,最終結果是未知的幫助。從而幫助我們創建數組列表,而不會給出明確的結果。
for(j=0;j<weblist.size();J++){
爲什麼不'list.size()'?而不是N. – Guy
@guy,你說得對.'weblist.size()'可以代替'N'。所發佈的代碼部分並不完整,所以我不想做出更多的假設。更新了答案。 – parishodak