如何使用watir单击Label元素?

时间:2015-01-13 08:01:31

标签: watir

我们将复选框呈现为<label for ="">元素。我正面临选择它的问题。

呈现的HTML代码:

<label for="copyFromCheckbox"> </label>

我如何点击:

@browser.label(:text,'copyFromCheckbox').parent.checkbox.set  **// Not working**
@browser.label(:text,'copyFromCheckbox').click                **//Not working**

我的最新成果

以下是html呈现的代码:

<label for="JobReport"><span class="Radiobox-txt">  Job Report (only one report that covers the whole job, view <a href="exampleJobReport.html">example report</a>) </span></label>

我尝试了以下方法但两种情况都没有成功。 Messe&#34;在所有情况下都无法找到元素。

方法1:

sleep 3
@browser.span(:text,'Job Report (only one report that covers the whole job, view').parent.click

方法2

sleep 3 
@browser.span(:xpath,'/html/body/div[3]/div[4]/div/div[2]/form/div/div/div[2]/div/div[2]/div/div[2]/label/span').parent.click

方法3

@browser.span(:xpath,'/html/body/div[3]/div[4]/div/div[2]/form/div/div/div[2]/div/div[2]/div/div[2]/label/span').when_present.click

1 个答案:

答案 0 :(得分:1)

Watir对:for标记不支持<label>属性。见https://github.com/watir/watir/wiki/HTML-Elements-Supported-by-Watir

@browser.label(:text,'copyFromCheckbox').click无效,因为copyFromCheckbox不是:text,而是上述不受支持的:for属性。

<label>代码中是否有文字?

例如,

<label for='copyFromCheckbox'>Hello</label>

可以点击

@browser.label(:text,'Hello').click

或者,您可以找到标签的XPath并单击使用它。

例如,

@browser.label(:xpath,'<insert XPath here>').click