我尝试使用xPath点击“是”复选框,但我似乎无法弄明白。我试过了
driver.find_element_by_xpath(".//label[following-sibling::input[contains(., 'Yes')]]").click() .
但这没有用。 过去我用过
driver.find_element_by_xpath("//input[@id=(//label[text()=\"Phone Number\"]/@for)]")
找到文字字段,但我还没能为复选框做同样的事情。 任何帮助将非常感激。
<dl data-validation="{"checkboxes":
{"required":true,"and":
[{"name":"checkboxes","operator":"checkboxes","options":{"message":"must select a value"}}]}}" class="form">
<dt><div class="form_response_label required" id="responses_2865807_label">Are you an Undergraduate Student?</div></dt>
<input id="responses_2865807_" name="responses[2865807][]" type="hidden">
<div class="form-checkbox">
<label for="responses_2865807_4737821">
<input id="responses_2865807_4737821" name="responses[2865807][]" type="checkbox" value="4737821">
Yes
</label> </div>
<div class="form-checkbox">
<label for="responses_2865807_4737822">
<input id="responses_2865807_4737822" name="responses[2865807][]" type="checkbox" value="4737822">
No
</label> </div>
<small><span class="right char_count"></span></small><div class="form-constraints"><div class="validation-summary" style="display: none;"><strong>Validation</strong><div class="explanation">Valid input may include: must select a value</div></div></div></dl>
我的主要关注点是在以下代码中检查是:
<label for="responses_2865807_4737821">
<input id="responses_2865807_4737821" name="responses[2865807][]" type="checkbox" value="4737821">
"
Yes
"
</label>
现在我想出了如何查找&#34;是&#34;的检查,我怎样才能选择&#34;是&#34;指定前面的标签,以防我遇到需要根据问题在“是”和“否”之间切换的情况? 因此,在上面的示例代码中,我将澄清我正在寻找&#34;是&#34;标有&#34的复选框;你是本科生吗?&#34;
答案 0 :(得分:1)
找到答案!只需要添加..而不是。
driver.find_element_by_xpath("//label/input[contains(..,'Yes')]").click()