我正在使用DOM节点:
<input type="form-control" type="text" data-bind="textInput: EnterpriseId" disabled autocomplete="off">
我怎么才能得到它的值呢?我很挣扎,因为element.getText()不起作用,返回一个空白。
element.getText()
kb5ga3dv1#
试试看:
WebElement element = driver.findElement(By.id("id value")); String val = element.getAttribute("innerText")
mutmk8jj2#
我假设所讨论的元素是元素,因此您可以使用element.getAttribute(String attribute)方法,如下所示:
element.getAttribute(String attribute)
String value = element.getAttribute("value");
flmtquvp3#
此 input 标记被禁用,因此element.getText()返回空值。请改用element.getAttribute("textContent")。
element.getAttribute("textContent")
l7wslrjt4#
您可能正在查找输入文本的占位符,因为您可能尝试:
element.getAttribute("placeholder");
bz4sfanl5#
您可以进入浏览器→打开开发者工具→检查您想要获取属性的元素→点击 * 属性 * →检查该值是否在InnerText中。然后按照前面的注解中提到的那样做:
InnerText
element_locator.get_attribute('InnerText')
czfnxgou6#
我也遇到了同样的问题!这篇文章为我解决了这个问题:***我用了:
element = driver.find_elements_by_xpath( '//button[@class="size-grid-dropdown size-grid-button"]') element.text
os8fio9y7#
正如其他人所建议的,HTML的input节点没有text属性,因为它们可以在value属性中存储多种格式的数据。在HTML input API规范中可以很容易地看到这一点,其中form control可以是 radio、date、file upload 等类型。因此,在您的特定情况下,我建议您检查webdriver的API,以查找能够检索value属性的方法。
input
form control
radio
date
file upload
webdriver
value
vlf7wbxs8#
作为在Selenium中评估元素的innerText的额外好处:
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("yourEl"))); wait.until(ExpectedConditions.attributeToBe(By.id("yourEl"), "innerText", yourValue));
文件:* 目标属性 *
nc1teljy9#
我已经测试过几次了,它确实有效:
在您的示例中,您没有任何innerText。因此,您只能使用现有属性获取前面提到的属性。在您的示例中:type、data-bind、EnterpriseId和autocomplete。由于未创建此属性,因此不会有值。如果您只想获得现有的,这应该是好的:
innerText
String example = driver.findElement(ByLocator(("")).getAttribute("any attribute of your input"); System.out.println(example);
9条答案
按热度按时间kb5ga3dv1#
试试看:
mutmk8jj2#
我假设所讨论的元素是元素,因此您可以使用
element.getAttribute(String attribute)
方法,如下所示:flmtquvp3#
此 input 标记被禁用,因此
element.getText()
返回空值。请改用
element.getAttribute("textContent")
。l7wslrjt4#
您可能正在查找输入文本的占位符,因为您可能尝试:
bz4sfanl5#
您可以进入浏览器→打开开发者工具→检查您想要获取属性的元素→点击 * 属性 * →检查该值是否在
InnerText
中。然后按照前面的注解中提到的那样做:
czfnxgou6#
我也遇到了同样的问题!这篇文章为我解决了这个问题:***
我用了:
os8fio9y7#
正如其他人所建议的,HTML的input节点没有text属性,因为它们可以在value属性中存储多种格式的数据。
在HTML
input
API规范中可以很容易地看到这一点,其中form control
可以是radio
、date
、file upload
等类型。因此,在您的特定情况下,我建议您检查
webdriver
的API,以查找能够检索value
属性的方法。vlf7wbxs8#
作为在Selenium中评估元素的innerText的额外好处:
文件:* 目标属性 *
nc1teljy9#
我已经测试过几次了,它确实有效:
在您的示例中,您没有任何
innerText
。因此,您只能使用现有属性获取前面提到的属性。在您的示例中:type、data-bind、EnterpriseId和autocomplete。由于未创建此属性,因此不会有值。如果您只想获得现有的,这应该是好的: