Python Selenium动态表单元格返回空字符串

Python Selenium动态表单元格返回空字符串,python,html,selenium,selenium-webdriver,Python,Html,Selenium,Selenium Webdriver,我试图从动态加载表中获取值,当我单击TD元素时,它工作正常。 但当我试图从同一个TD获取文本时,它返回的是empity字符串。 我尝试过XPATH、CSS\u选择器 下面是UI的外观,我想得到金额 下面是HTML快照 工作正常 返回empity字符串 金额=WebDriverWait(驱动程序, 10) .until(EC.text_to_be_present_in_元素((By.XPATH, '//*[@id=“xfe38”],“0”)打印量 超时异常解决方案 正如@Andersson已经

我试图从动态加载表中获取值,当我单击TD元素时,它工作正常。 但当我试图从同一个TD获取文本时,它返回的是empity字符串。 我尝试过XPATH、CSS\u选择器

下面是UI的外观,我想得到金额

下面是HTML快照

工作正常

返回empity字符串

金额=WebDriverWait(驱动程序, 10) .until(EC.text_to_be_present_in_元素((By.XPATH, '//*[@id=“xfe38”],“0”)打印量

超时异常

解决方案 正如@Andersson已经提到的,您可以使用
get_属性('value')
从输入字段中提取文本。让我们创建以下示例:

driver.get('http://demo.automationtesting.in/Register.html') # get sample page
time.sleep(3) # pause to wait until page loads

input_el = driver.find_element_by_xpath("//*[@id='basicBootstrapForm']/div[4]/div/input") # phone input field
input_el.click()
input_el.send_keys("123")

print(input_el.text) # prints nothing
print(input_el.get_attribute("value")) # prints '123'

分析 如果我们转到开发工具:

对于
输入
,我们将看到以下HTML:

<input type="tel" class="form-control ng-touched ng-dirty ng-valid-parse ng-invalid ng-valid-required ng-invalid-pattern" ng-model="Phone" required="" pattern="^\d{10}$">
不会打印任何内容。如果HTML看起来像:

<label class="col-md-3 col-xs-3 col-sm-3 control-label">Email address*</label>

将打印
标签内的文本
标记-
电子邮件地址*

尝试
驱动程序。按\u id('amount')查找\u元素。获取\u属性('value')
谢谢大家,@Andersson an@Andrei Suvorkov,我已经扩展了XPATH并获得了属性值。-amount=driver。通过xpath('/*[@id=“Table\u check\u Ref\u Details”]/tbody/tr[2]/td[11]/div/input')查找元素。获取属性('value')可以,但它没有value属性,但它正在打印值,为什么?这是一个好问题!你可以看看这里
<input type="tel" class="form-control ng-touched ng-dirty ng-valid-parse ng-invalid ng-valid-required ng-invalid-pattern" ng-model="Phone" required="" pattern="^\d{10}$">
print(input_el.text)
<label class="col-md-3 col-xs-3 col-sm-3 control-label">Email address*</label>
print(label_el.text)