无法选中动态输入ID值的复选框

时间:2016-12-26 20:16:45

标签: checkbox selenium-webdriver robotframework selenium2library

下面是两个复选框的html,我的目的是选择一个复选框,使用它的标签为'XERU'或'SYM'。在Robot Framework中,关键字“Check Box应该被选中”使用Key属性; ID和名称作为定位器,但此处ID对于每个标签都是动态的。

所以我需要为复选框构建一个Xpath,选择它的ID / Name,但不要在测试套件中进行硬编码。

<input id="ctl00_PageBody_chklistVirtualAddressingGroups_5" name="ctl00$PageBody$chklistVirtualAddressingGroups$5" type="checkbox"/>
<label for="ctl00_PageBody_chklistVirtualAddressingGroups_5">XERU</label>
<br/>
<input id="ctl00_PageBody_chklistVirtualAddressingGroups_6" name="ctl00$PageBody$chklistVirtualAddressingGroups$6" type="checkbox"/>
<label for="ctl00_PageBody_chklistVirtualAddressingGroups_6">SYM</label>
<br/>

3 个答案:

答案 0 :(得分:1)

您可以尝试以下代码。此代码基于您提供的HTML。请尝试提供更多信息。

driver.findElement(By.xpath("//label[contains(text(), 'XERU')]")).click();
driver.findElement(By.xpath("//label[contains(text(), 'SYM')]")).click();

答案 1 :(得分:0)

我会尝试这些方法:

Wait Until Keyword Succeeds    4 sec    1 sec    Click Element    xpath=//label[contains(text(), 'XERU')]
Wait Until Keyword Succeeds    4 sec    1 sec    Click Element    xpath=//label[contains(text(), 'SYM')]

如果失败了,您能否向我们提供有关问题原因的进一步信息?

答案 2 :(得分:0)

将xpaths用作 -

(//label[text()='XERU']/preceding::input)[last()]
(//label[text()='SYM']/preceding::input)[last()]