我们将复选框呈现为<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
答案 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