Selenium复选框数据驱动 - Checkbox只有目标但没有值

时间:2014-06-04 14:52:41

标签: selenium checkbox

我很难使用Selenium IDE参数化(数据驱动)复选框。当我使用Selenium记录选择复选框时,我会执行以下操作:

<tr>
<td>click</td>
<td>id=_ctl0_MainContentPlaceHolder_UseCaseBesturing__ctl1_dgOndersteundeChannels__ctl2_chkbxChannel</td>
<td></td>

为了参数化这个动作并指向我的测试数据(XML)文件,我需要一个可以设置为变量的值。但是在这个动作中没有价值,只有一个目标是ID。

有关如何参数化此操作或如何使用值而不是仅使用目标(ID)来检查复选框的任何想法?

P.S。通过放置&#34; $ {Parametername} &#34;文本字段可以正常工作在Selenium的值字段中进行操作。然后,Parametername将成为我的测试数据文件中的列名。

复选框的Html代码:

<table class="detailgrid" cellspacing="0" border="0" id="_ctl0_MainContentPlaceHolder_UseCaseBesturing__ctl1_dgOndersteundeChannels" style="border-style:None;border-collapse:collapse;">
    <tbody><tr>
        <td style="width:20px;">
                            <span disabled="disabled"><input id="_ctl0_MainContentPlaceHolder_UseCaseBesturing__ctl1_dgOndersteundeChannels__ctl2_chkbxChannel" type="checkbox" name="_ctl0:MainContentPlaceHolder:UseCaseBesturing:_ctl1:dgOndersteundeChannels:_ctl2:chkbxChannel" checked="checked" disabled="disabled"></span>
                        </td><td>
                            <span id="_ctl0_MainContentPlaceHolder_UseCaseBesturing__ctl1_dgOndersteundeChannels__ctl2_lblChannelNaam">POS</span>
                        </td>
    </tr><tr>
        <td style="width:20px;">
                            <input id="_ctl0_MainContentPlaceHolder_UseCaseBesturing__ctl1_dgOndersteundeChannels__ctl3_chkbxChannel" type="checkbox" name="_ctl0:MainContentPlaceHolder:UseCaseBesturing:_ctl1:dgOndersteundeChannels:_ctl3:chkbxChannel">
                        </td><td>
                            <span id="_ctl0_MainContentPlaceHolder_UseCaseBesturing__ctl1_dgOndersteundeChannels__ctl3_lblChannelNaam">eCommerce</span>
                        </td>
    </tr><tr>
        <td>
                            <br>
                            <span type="checkbox"><input id="_ctl0_MainContentPlaceHolder_UseCaseBesturing__ctl1_dgOndersteundeChannels__ctl4_chkalles1" type="checkbox" name="_ctl0:MainContentPlaceHolder:UseCaseBesturing:_ctl1:dgOndersteundeChannels:_ctl4:chkalles1" onclick="CheckAll('chkbxChannel', this.checked);"></span>
                        </td><td>
                            <br>
                            Alles Aan
                        </td>
    </tr>
</tbody></table>

2 个答案:

答案 0 :(得分:0)

仍然使用点击,但使用xpath更改目标的找到方式。

它看起来像这样:

目标:

xpath=//td/span[text()='POS']

希望这有帮助!

答案 1 :(得分:0)

在完成这个问题之后,我尝试在测试步骤中使用Target参数(因为在各种尝试后无法参数化Action(Command))。

要选中一个复选框,Xpath应指向输入标记,并可使用click命令进行检查。

IMO,根据HTML,检查Xpath对应的复选框的正确eCommerce应为:

//span[text()='eCommerce']/ancestor::td/preceding-sibling::td/input