如何使用 watir 单击标签元素?

How to click Label element using watir?

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

渲染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“无法定位元素”在所有情况下都会出现。

方法一:

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

方法二

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

方法三

@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

Watir 不支持 <label> 标签的 :for 属性。参见 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

最后,我能够使用以下代码行解决此问题。它对我来说绝对没问题。

@browser.span(:text, /^Job Report/).parent.click

感谢大家分享一些可能的方法。

干杯。 雷