0

下面是两个复选框的 html,我的意图是选择一个复选框,使用它的标签作为“XERU”或“SYM”。在 Robot Framework 中,关键字 'Checkbox Should Be Selected' 使用 Key 属性;ID 和名称作为它的定位器,但这里的 ID 对于每个标签都是动态的。

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

<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/>
4

3 回答 3

1

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

driver.findElement(By.xpath("//label[contains(text(), 'XERU')]")).click();
driver.findElement(By.xpath("//label[contains(text(), 'SYM')]")).click();
于 2016-12-27T06:01:08.230 回答
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')]

如果失败,您能否向我们提供更多信息,说明为什么会出现问题?

于 2016-12-28T10:53:07.883 回答
0

使用 xpaths 作为 -

(//label[text()='XERU']/preceding::input)[last()]
(//label[text()='SYM']/preceding::input)[last()]
于 2017-01-09T10:45:57.033 回答