0

おおよそ次のような HTML ページがあります。

<div id="rolesRollerBody" style="height: 309px;">
    <input type="checkbox" onclick="checkAll('removeRolesForm');" name="allbox">
    Select all
    <br><br>
    <input type="checkbox" value="49893" name="delRole">
    CCC11
    <br>
    <input type="checkbox" value="49881" name="delRole">
    TEST111
    <br><br>
</div>

以下を使用してパネル全体を取得しています。

WebElement deletePanel = driver.findElement(By.className("bulkUpdateBody"))
            .findElement(By.id("rolesRollerBody"));

次に、「TEST111」という名前のチェックボックスを取得する必要があります。問題は、テキスト「TEST111」を取得できないことです。

4

1 に答える 1

2

XPathソリューション:

id('rolesRollerBody')/text()[contains(.,'TEST111')]/preceding-sibling::input[1]

これにより、次が選択されます。

input                          - The `input` element
/preceding-sibling::input[1]   - that is most closely followed by
/text()[contains(.,'TEST111')] - the 'TEST111' text
id('rolesRollerBody')          - in the element with id 'rolesRollerBody'.

または、直接の順序で:

id('rolesRollerBody')          - The element with id 'rolesRollerBody'
/text()[contains(.,'TEST111')] - in that, the text node containing 'TEST111'
/preceding-sibling::input[1]   - and the first preceding `input` element to that text

したがって、

WebElement theInput = driver.findElement(By.xpath("id('rolesRollerBody')/text()[contains(.,'TEST111')]/preceding-sibling::input[1]"));
于 2012-07-03T12:06:21.777 に答える