1

このチェックボックスのリストを取得しました。特定のチェックボックスがチェックされているかどうかを確認したいのですが、チェックボックスIDは使用できず、テキストのみが使用できますが、このようなものです。

<ul id="chkList">
    <li>
        <span>
            <input id="CheckBox_1" type="checkbox" value="1" checked="checked" />
            <label for="CheckBox_1">Cat</label>
        </span>
    </li>
    <li>
        <span>
            <input id="CheckBox_2" type="checkbox" value="20" />
            <label for="CheckBox_2">Dog</label>
        </span>
    </li>
    <li>
        <span>
            <input id="CheckBox_2" type="checkbox" value="22" />
            <label for="CheckBox_2">Alley</label>
        </span>
    </li>
</ul>

私は何かをしたい

driver.FindElement(By.XPath("//ul[@id='chkList']/li/span/label[./text()='Cat'])).Selected;

しかし、xpathは入力ではなくラベルを選択するため、確かにそれはできません。forラベルに を使用して、入力用の ID を探すことを考えています。しかし、どうすればそれを行うことができますか?

入力には使用できませんid。これは動的であるため値です。使用できるのはテキストだけです。

編集

テストケース:

  1. chkList に新しいアイテムを作成する
  2. 新しいアイテムを別のアイテムでチェックして割り当てます。(簡潔にするために表示されていません)
  3. 保存
  4. 新しいアイテムが別のアイテムに割り当てられているかどうかを確認します。
4

1 に答える 1

0

次のように XPath を試しましたか。

driver.FindElement(By.XPath("//ul[@id='chkList']/li[1]/span/input)).Selected;

チェックリストの数に対して 1 つのカウントを維持し、その値を li[count] 要素で使用できます。

于 2012-09-01T07:42:23.920 に答える