0

こんにちは、動的に生成されたボタン (ボタンの削除) を選択する際に問題に直面しています。すべての削除ボタンの ID は同じです。Lync - user Access の xpath を取得して削除ボタンをクリックするにはどうすればよいですか?

テーブルに 3 つの列と 2 つの行があります。2行目にあるボタンをクリックしたい。

xpath軸で試してみましたが、コードは次のようになります:driver.findElement(By.xpath("//a[.='PC/E - Home Branch View ']/following-sibling::/td[3]/input")).click(); しかし、エラーがスローされます:

"org.openqa.selenium.InvalidSelectorException: The xpath expression '//a[.='PC/E - Home Branch View ']/following-sibling::/td[3]/input' を評価できないか、結果が得られませんWebElement (警告: サーバーはスタックトレース情報を提供しませんでした)"

私のHTMLコードは次のようになります:

    <TR>
        <TD id="Lync - User Access" class="profileInnerTable">
            <A style="CURSOR: hand" class="TabLink" onmouseover="ddrivetip1('Default for CBA users not in RBS Branches','lightyellow',250)" onmouseout="hideddrivetip"() ;>Lync - User Access </A>
        </TD>
        <TD class="profileInnerTable" align="middle">&nbsp; </TD>
        <TD class="profileInnerTable">
            <INPUT style="WIDTH: 100px; HEIGHT: 20px" tabIndex="0" onclick="processRemoveRoleFromDN(form, 'erglobalid=7178977152403244193,ou=roles,erglobalid=00000000000000000000,ou=CBA,dc=com');" value="Remove" type="button" name="removeDiscRole"> 
        </TD>
    </TR>
    <TR>
        <TD id="PC/E - Home Branch View " class="profileInnerTable">
            <A style="CURSOR: hand" class="TabLink" onmouseover="ddrivetip1('PC/E access to user\'s Home Branch only - For RBS Branch Users','lightyellow',250)" onmouseout="hideddrivetip"() ;>PC/E - Home Branch View </A>
        </TD>
        <TD class="profileInnerTable" align="middle">&nbsp; </TD>
        <TD class="profileInnerTable">
            <INPUT style="WIDTH: 100px; HEIGHT: 20px" tabIndex="0" onclick="processRemoveRoleFromDN(form, 'erglobalid=3113620533928290009,ou=roles,erglobalid=00000000000000000000,ou=CBA,dc=com');" value="Remove" type="button" name="removeDiscRole"> 
        </TD>
    </TR>

削除ボタンをクリックしたい(2行目)。同じ行の要素のIDまたはXpathで参照して、削除ボタンをクリックする方法を教えてください。

PS:コードを実行するとdriver.findElement(By.xpath("//input[@name='removeDiscRole']")).click();

最初の削除ボタン (1 行目) をクリックするだけです。

4

2 に答える 2