如何使用webdriver通过标签查找输入字段?Webdriver - 通过标签定位输入(Python)
我喜欢测试某个不幸使用动态生成的 ID的Web表单,因此它们不适合作为标识符。
然而,与每个网页元素相关的标签都适合我。 不幸的是,我无法做到这一点与网上提供的几个建议 。有一个线程在这里如此,但是这并没有 产生一个公认的答案:
Selenium WebDriver Java - Clicking on element by label not working on certain labels
为了解决Java的这个问题时,通常建议通过其文本内容定位标签作为锚然后指定输入元素的xpath:
//label[contains(text(), 'TEXT_TO_FIND')]
我不知道如何在python中做到这一点。 我的网络元素:
<div class="InputText">
<label for="INPUT">
<span>
LABEL TEXT
</span>
<span id="idd" class="Required" title="required">
*
</span>
</label>
<span class="Text">
<input id="INPUT" class="Text ColouredFocus" type="text" onchange="var wcall=wicketAjaxPost(';jsessionid= ... ;" maxlength="30" name="z1013400259" value=""></input>
</span>
<div class="RequiredLabel"> … </div>
<span> … </span>
</div>
你能做出这样的回答更加明确给我吗?也许取决于我给的例子html? – 2014-10-09 09:15:02
要使用上面提供的@alecxe,只需将他的“TEXT_TO_FIND”更改为“LABEL TEXT”(从您的示例中)。它会找到一个div,后面有一个标签,后跟一个带有文本“LABEL TEXT”的文本,如果你愿意的话,找到'home'点。然后在该div下找到类Text的范围,然后输入你想要的元素。 – 2014-10-10 09:31:29