我在DOM中有一个元素
<input type = "form-control" type="text" data-bind="textInput: EnterpriseId" disabled autocomplete="off">
此文本框包含一些未反映在此元素标记中的文本。我如何获得这个价值?就像,显然,
element.getText()不起作用并返回空白。那么我有没有办法得到文本?
任何建议都会有很大的帮助。
答案 0 :(得分:4)
试试这个
WebElement element= driver.findElement(By.id("id value"));
String val=element.getAttribute("innerText")
答案 1 :(得分:2)
我认为有问题的元素是func MergeSlices(s1 []float32, s2 []int32) []int {
var slice []int
for i := range s1 {
slice = append(slice, int(s1[i]))
}
for i := range s2 {
slice = append(slice, int(s2[i]))
}
return slice
}
元素,因此您可以使用<input>
方法,如下所示:
element.getAttribute(String attribute)
答案 2 :(得分:1)
您在寻找输入文本的占位符吗?因为你可能会尝试
element.getAttribute("placeholder");
答案 3 :(得分:0)
此输入标记已禁用,因此element.getText()
返回空白val。
请改用element.getAttribute("textContent")
。希望这会奏效。
答案 4 :(得分:0)
您可以转到浏览器->打开开发人员工具->检查要从中获取属性的元素->单击Properties
->检查该值是否在InnerText
然后按照上面的注释中的说明进行操作:
element_locator.get_attribute('InnerText')
答案 5 :(得分:0)
有完全相同的问题!这篇文章为我解决了: How can I get the current contents of an element in webdriver 我用过:
element = driver.find_elements_by_xpath(
'//button[@class="size-grid-dropdown size-grid-button"]')
element.text
答案 6 :(得分:0)
有点晚了,但是对于正在寻找类似解决方案的其他人可能会有所帮助: 它确实可以正常工作,因为我已经对其进行了多次测试:
public void addImages(ImageView[] imageViews, GridPane grid) {
//What to do in this part..
}
在您的示例中,您没有任何<input type = "form-control" type="text" data-bind="textInput: EnterpriseId" disabled autocomplete="off">
。因此,您只能使用现有属性获得前面提到的属性。在您的情况下:
类型,数据绑定,EnterpriseId和自动完成。没有值,因为未创建此属性。
如果您想继续生存下去,那应该没事:
innerText
答案 7 :(得分:0)
正如其他人所建议的那样,HTML的input
节点没有text属性,因为它们可以在 value 属性中以多种格式存储数据。
在HTML input
API specification中可以轻松看到这一点,其中的form control
可以是 radio
, date
,< em> file upload
等。
因此,在您的特定情况下,建议您检查webdriver
的API,以获取能够检索value
属性的方法。