Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Selenium将Web元素列表中的项目添加到字符串数组列表中_Java_Arrays_Selenium Webdriver - Fatal编程技术网

Java Selenium将Web元素列表中的项目添加到字符串数组列表中

Java Selenium将Web元素列表中的项目添加到字符串数组列表中,java,arrays,selenium-webdriver,Java,Arrays,Selenium Webdriver,我正在做一些自动化测试,并试图将一些项目从web元素列表保存到字符串数组,应该会涉及一些解析,但我不确定如何进行,请参见下面的代码片段 public void I_should_see_the_following_folders(DataTable expectedData) throws Throwable { int tbl1; int tbl2; List<List<String>> featureTable = expectedData.raw()

我正在做一些自动化测试,并试图将一些项目从web元素列表保存到字符串数组,应该会涉及一些解析,但我不确定如何进行,请参见下面的代码片段

public void I_should_see_the_following_folders(DataTable expectedData) throws Throwable {
    int tbl1; int tbl2;
    List<List<String>> featureTable = expectedData.raw();
    WebElement folders = driver.findElement(By.id("folders"));
    List <WebElement> emailFolders = folders.findElements(By.className("folder-name"));

    List<String> foo = new ArrayList<String>();
    for (List<String> featuresList : expectedData.raw())
        foo.add(featuresList.get(0));

        tbl1 = emailFolders.size();
        tbl2 = featureTable.size();

    List<String> webList = new ArrayList<String>();
    for(int i=0;i<tbl1;i++){
        webList.add(emailFolders.get(0));
    }



}
public void I\u应该\u看到\u以下文件夹(DataTable expectedData)抛出的可丢弃文件{
int-tbl1;int-tbl2;
List featureTable=expectedData.raw();
WebElement folders=driver.findElement(By.id(“folders”);
列出emailFolders=folders.findElements(按.className(“文件夹名称”));
List foo=new ArrayList();
对于(列表功能列表:expectedData.raw())
foo.add(featurelist.get(0));
tbl1=emailFolders.size();
tbl2=featureTable.size();
List webList=new ArrayList();

对于(int i=0;i请尝试使用以下示例代码,相应地更改xpath/数据

List<WebElement> resultList = _driver.findElements(By.xpath("//img[contains(@src,'tab-close.png')]/preceding-sibling::span[@class='tab-name ng-binding']"));
        for (WebElement resultItem : resultList){
           String tabname=resultItem.getText();
           if(resultItem.getText().equalsIgnoreCase("Dashboard")){
           GlobalFunctions.clickOnButtonCustomised(false, _driver, By.xpath("//span[@class='tab-name ng-binding' and contains(text(),'"+tabname+"')]/following-sibling::img[contains(@src,'tab-close.png')]"), "");
            }
        }
List resultList=\u driver.findElements(By.xpath(//img[contains(@src,'tab-close.png')]/前面的同级::span[@class='tab-name ng binding']);
for(WebElement resultItem:resultList){
字符串tabname=resultItem.getText();
if(resultItem.getText().equalsIgnoreCase(“仪表板”)){
GlobalFunctions.clickOnButtonCustomised(false,_driver,By.xpath(//span[@class='tab-name ng binding'和contains(text(),'“+tabname+”)))]/以下同级::img[contains(@src,'tab-close.png')”);
}
}
更改此选项:

for (int i=0; i<tbl1; i++)
    webList.add(emailFolders.get(0));
然后,用存储实际文件夹名称的属性名称替换
XXX

举几个例子:

  • 对于
    ,将
    XXX
    替换为
    “id”
  • 对于
    ,将
    XXX
    替换为
    “值”
  • 对于
    folder1
    ,将
    XXX
    替换为
    “innerHTML”

顺便说一句,您可以简单地使用
getText()

将WebElements列表转换为String[]数组,而不是
getAttribute(“innerHTML”)
,但是这种通用方法很有效-

//  iterate through all elements adding to array we are returning
public static String[] listToStringArray(List<WebElement> inList) {
    String[] outArray = new String[inList.size()];  // instantiate Array

    for (int i = 0; i < inList.size(); i++) {
        outArray[i] = inList.get(i).getText();
        }
    }
    return outArray;
}
//遍历添加到我们返回的数组中的所有元素
公共静态字符串[]ListToStringAray(列表中的列表){
String[]outArray=新字符串[inList.size()];//实例化数组
对于(int i=0;i
那么您想要从WebElement中获得什么信息?您想要它是
文本吗?
?其他属性?我试图获取文本,然后进行字符串比较。
//  iterate through all elements adding to array we are returning
public static String[] listToStringArray(List<WebElement> inList) {
    String[] outArray = new String[inList.size()];  // instantiate Array

    for (int i = 0; i < inList.size(); i++) {
        outArray[i] = inList.get(i).getText();
        }
    }
    return outArray;
}