我有一个表格,其中每个文本框都有一个标题。我已经有了文本框的WebElement,我想引用它们的标题(指向"for=id"
的标题)。
我尝试了他们的getText
仅返回输入框中的文本,尝试了getCssValue("label")
却不返回任何内容。我尝试查找所有标签,但这无济于事,因为我仍然必须筛选所有标签,并找到需要带有*的8个不同标签。
<label for="customer_firstname">First name <sup>*</sup></label>
<input onkeyup="$('#firstname').val(this.value);" type="text" class="is_required validate form-control" data-validate="isName" id="customer_firstname" name="customer_firstname" value="">
我想找回标签文本的字符串,因此可以检查(with .contains())
是否在末尾包含"*"
。最好使用尽可能少的Xpath。
答案 0 :(得分:0)
要使用输入标签指示标签标签,可以使用以下xpath:
//input[@id='customer_firstname']/preceding-sibling::label
如果您只想输入字段,则应使用我认为唯一的id,尽管您必须在DOM中进行验证。
id = customer_firstname
用于使用<label **for**>
您可以使用以下代码:
String custLabelAttribute = driver.findElement(By.xpath("//input[@id='customer_firstname']/preceding-sibling::label")).getAttribute("for")
应打印: customer_firstname
答案 1 :(得分:0)
如果Input和label标签都属于同一父级,则可以先获取父级的唯一xpath,然后添加//,您可以到达label标签并获取文本。您应该通过找到唯一的xpath并使用.gettext()到达标签标签,然后您将获得标签标签的内文。