首页 > 解决方案 > 通过迭代表比较表中的值并选择该特定值前面的复选框

问题描述

下面是我的代码,它在执行时没有显示任何错误,但没有单击复选框。列出列中的所有 Web 元素并获取所需的标题。

公共无效reviewProcessECL(){

    //to catch all web elements into list
    List<WebElement> myList=driver.findElements(By.xpath("//table/tbody/tr/td[5]"));

    //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++) {

        all_elements_text.add(myList.get(i).getText());
        String id= myList.get(i).getText();

        if(id.contains(tdata.getProperty("Letter_Subject"))) {
            i++;    
            driver.findElement(By.xpath("//table/tbody/tr["+i+"]/td[11]")).click();
            driver.findElement(By.xpath("//table/tbody/tr["+i+"]/td[11]//div[@class='dropBox']//a[contains(text(),'Add Works')]")).click();

        }
    }
}

标签: javaseleniumgradleselenium-chromedrivertestng

解决方案


试试这样的,

public void clickOnDropDown(String dropDownValue) {
        driver.findElement(By.xpath("yourXpath")).click();// click the dropdown

        List<WebElement> stroreValueFromDropDown = driver.findElements(By.xpath("yourXpath"));// store dropdown values

        for (WebElement list : stroreValueFromDropDown) { //iterate through the dropdown
            String listValue = list.getText();// get text
            if (listValue.contains(dropDownValue)) {// compare dropdown and expected text
                list.click();// click when expected value is found 
                break;
            }

        }

    }

推荐阅读