如何在Selenium中获取元素的内部文本?

时间:2017-05-12 09:11:01

标签: selenium selenium-webdriver innertext

我在DOM中有一个元素

<input type = "form-control" type="text" data-bind="textInput: EnterpriseId" disabled autocomplete="off">

此文本框包含一些未反映在此元素标记中的文本。我如何获得这个价值?就像,显然,

element.getText()不起作用并返回空白。那么我有没有办法得到文本?

任何建议都会有很大的帮助。

8 个答案:

答案 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属性的方法。