2个表单-信用卡和支票帐户-2个相同的XPath用于一个复选框-自动化不会单击该复选框

2个表单-信用卡和支票帐户-2个相同的XPath用于一个复选框-自动化不会单击该复选框,xpath,automation,codeception,Xpath,Automation,Codeception,这是我正在使用的xpath //tr[@id = 'inputSavePaymentAccounts']/descendant::input[@type = 'checkbox' and @name = 'payAck' and @tabindex = '10' 下面是我如何让它选中复选框的方法 jQuery('.payAck').prop('checked', true) 这是iframe中的支票帐户html <tr id="inputSavePaymentAccounts" cla

这是我正在使用的xpath

//tr[@id = 'inputSavePaymentAccounts']/descendant::input[@type = 'checkbox' and @name = 'payAck' and @tabindex = '10'
下面是我如何让它选中复选框的方法

jQuery('.payAck').prop('checked', true)
这是iframe中的支票帐户html

<tr id="inputSavePaymentAccounts" class="savePaymentAccounts" style="display: table-row;">
<td class="addCCLabel" style="padding-top: 15px;">Save this Payment Method</td>
<td style="padding-top: 15px;">
    <input class="payAck" type="checkbox" onchange="friendlyNameShow()" name="payAck" tabindex="10">
    </td>
</tr>
<tr id="inputSavePaymentAccounts" class="savePaymentAccounts" style="display: table-row;">
<td class="addCCLabel" style="padding-top: 15px;">Save this Payment Method</td>
<td style="padding-top: 15px;">
    <input class="payAck" type="checkbox" onchange="friendlyNameShow()" name="payAck" tabindex="25">
    </td>
</tr>

保存此付款方式
这是同一iframe中的信用卡html

<tr id="inputSavePaymentAccounts" class="savePaymentAccounts" style="display: table-row;">
<td class="addCCLabel" style="padding-top: 15px;">Save this Payment Method</td>
<td style="padding-top: 15px;">
    <input class="payAck" type="checkbox" onchange="friendlyNameShow()" name="payAck" tabindex="10">
    </td>
</tr>
<tr id="inputSavePaymentAccounts" class="savePaymentAccounts" style="display: table-row;">
<td class="addCCLabel" style="padding-top: 15px;">Save this Payment Method</td>
<td style="padding-top: 15px;">
    <input class="payAck" type="checkbox" onchange="friendlyNameShow()" name="payAck" tabindex="25">
    </td>
</tr>

保存此付款方式
主要问题是,当我使用:

jQuery('.payAck').prop('checked',true)

它选中了复选框,但是,在选中复选框时,我想会看到一个文本框显示,这在上面的jquery中没有发生。我希望xpath的执行能够解决这个问题

查看这些以获得更清晰的图片
复选框的图像

选中复选框并显示文本框时的图像(需要这样做)

首先,我建议您删除内联javascript。在本例中,您的主选择器是一个类,该类被分配给2个元素(至少从我在示例中看到的情况来看)。当您使用jQuery和类选择器选中复选框时,它将触发属于该类的所有元素,我认为这不是您想要做的。此外,使用click()也可以,但这会导致friendlyNameShow()被调用两次,您需要检查复选框的状态,因为您没有显式地检查/取消检查它。请尝试使用和Id。

您是否尝试使用click()而不是prop('checked',true)?您的问题中是否有Codeception元素?