【发布时间】:2016-08-28 11:50:44
【问题描述】:
我在使用 Selenium IDE 参数化(数据驱动)复选框时遇到了困难。当我使用 Selenium 记录选择复选框时,我得到以下操作:
<tr>
<td>click</td>
<td>id=_ctl0_MainContentPlaceHolder_UseCaseBesturing__ctl1_dgOndersteundeChannels__ctl2_chkbxChannel</td>
<td></td>
为了参数化这个动作并指向我的测试数据 (XML) 文件,我需要一个可以设置为变量的值。但是在这个动作中没有任何价值,只有一个目标,即 ID。
任何想法如何参数化此操作或如何使用值而不是仅使用目标 (ID) 来检查复选框?
附:通过将“${Parametername}”放入 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>
【问题讨论】:
-
考虑使用 XPath。
-
我试过 xpath=//td/span[text()='POS'] 但它不起作用。它不会在 Selenium 中给出任何错误,但它只是不检查任何复选框。
-
我把复选框区域的整个 html 代码放在了这里,也许这有助于了解如何完成这项工作。有 3 个可能的复选框(POS、电子商务、Alles aan)。我想在 selenium 中创建这个变量,这样我就可以使用我的测试数据来定义应该选中哪个复选框。
-
发布您的代码。请记住,
span不是复选框,无论它在浏览器中是什么样子。您是否尝试过使用click()。你还尝试了什么?