テーブルのセレンのセル内に位置している要素をクリックする方法

包皮:

私は、行番号と列名によって、細胞からのテキスト値を取得する方法を書きました。

public String getValueFromCell(int rowNumber, String columnName){
        List<Map<String, WebElement>> rowsWithColumnsByHeadings = getRowsWithColumnsByHeadings();
        return rowsWithColumnsByHeadings.get(rowNumber - 1).get(columnName).getText();
    }

しかし、細胞内のアイコンは、(あなたがスクリーンショットで見ることができるように、1、2、または4つのアイコンがあることができます)があります Xpathとアイコン

そして今、私はそれらのすべてをクリックします。または特定のアイコンをクリックしてください

そして私は、このテーブルは、セル内のアイコンの異なる数を持つ多くのページに配置されていることを認めなければならない、と私はそれらのすべてのために、このメソッドを使用します。

どのように私はこの方法を変更することができますか?または私は何をすべきでしょうか?

Dipak Bachhav:

ソリューションの下に確認してください。

あなたが特定のアイコンの要素をクリックします次に、あなただけがチェックそれ以外の要素にクリックしながら前にActionクラスを使用してmoveToElementを使用し、それをクリックするROWNUMBERインデックスを使用することができます。

public String getValueFromCell(int rowNumber, String columnName){
        List<Map<String, WebElement>> rowsWithColumnsByHeadings = getRowsWithColumnsByHeadings();
        List<WebElement> elements = driver.findElements(By.className("mat-icon.mat-icon.notranslate.material-icon.mat-icon-n0-color"))
        elements.get(rowNumber).click()
        return rowsWithColumnsByHeadings.get(rowNumber - 1).get(columnName).getText();
    }

またはあなたが1でそれら1のすべてをクリックします:

    List<WebElement> elements = driver.findElements(By.className("mat-icon.mat-icon.notranslate.material-icon.mat-icon-n0-color"));
    elements.forEach(e -> {
        e.click();

    });

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=365834&siteId=1