![](/img/trans.png)
[英]How to get the exact number of rows in webtable in Selenium WebDriver using Java
[英]How to check webelements in webtable is sorted alphabetically using selenium webdriver?
我们的应用程序包含网络元素表。 我的目的是检查目录表是否按字母顺序排列。
WebDriver d=new FirefoxDriver();
d.get("http://www.javatpoint.com/wrapper-class-in-java");
WebElement table=d.findElement(By.xpath(".//*[@id='city']/table/tbody"));
List<WebElement> lst=table.findElements(By.tagName("tr"));
System.out.println(lst);
List ls=new ArrayList<String>();
for(int i=0;i<=6;i++)
{
ls=lst.addAll(get(i).getText())
}
我的目标是将字符串类型的 webelement 存储在一个列表中,并创建另一个排序类型的列表,最后比较两个列表。 请帮忙。
您可以将默认排序存储在一个字符串数组中,如obtainedList
,然后使用sortedList
集合对其进行sortedList
,最后两者都使用。
ArrayList<String> obtainedList = new ArrayList<>();
List<WebElement> elementList= driver.findElements(By.xpath(YourLocator));
for(webElement we:elementList){
obtainedList.add(we.getText);
}
ArrayList<String> sortedList = new ArrayList<>();
for(String s:obtainedList){
sortedList.add(s);
}
Collections.sort(sortedList);
Assert.assertTrue(sortedList.equals(obtainedList));
对于降序添加:
Collections.reverse(sortedList);
在Collections.sort(sortedList);
Collections.sort(SortedList,String.CASE_INSENSITIVE_ORDER);
只是即兴我们需要添加String.CASE_INSENSITIVE_ORDER
来匹配区分大小写的排序!
public boolean sortVerify() {
List<WebElement> theList=driver.findElements(By.xpath("//*[@id='productView']/div/div/div/div"));
List<Integer> Prices=new ArrayList<>();
for (int NumberOfItem=1; NumberOfItem<theList.size();NumberOfItem++) {
System.out.println("feteching by xpath price");
String priceOneRaw=driver.findElement(By.xpath("//*[@id=\"p_"+NumberOfItem+"_1\"]/div/div[5]/div/span[1]")).getText();
System.out.println("feteching by xpath price--------"+priceOneRaw);
////below 2 lines are to get the price in exact integers, as earlier it was in format Rs.3829.
String priceOneFinal=priceOneRaw.replaceAll("[\\-\\?\\+\\.\\^:,\\\u20B9]","");
String PriceComplete = priceOneFinal.split("Rs")[1];
int finalPrice=Integer.parseInt(PriceComplete);
Prices.add(finalPrice);
}
int previousPrice=Prices.get(0);
for(int SortCheckNumber=1;SortCheckNumber<theList.size()-1;SortCheckNumber++) {
if(Prices.get(SortCheckNumber)<previousPrice) {
System.out.println("notSorted");
return false;
}else {
previousPrice=Prices.get(SortCheckNumber);
}
}
System.out.println("allSorted");
return true;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.