Python Selenium Dynamic表单元返回空字符串

时间:2018-08-12 06:49:24

标签: python html selenium selenium-webdriver

我试图从动态加载表中获取价值,当我单击TD元素时,一切正常。 但是,当我尝试从同一个TD获取文本时,它正在返回tempity字符串。 我已经尝试过XPATH,CSS_Selector

下面是UI外观,我想获取金额 enter image description here

下面是HTML快照 enter image description here

amount = driver.find_element_by_xpath('//*[@id="Table_Cheque_Ref_Details"]/tbody/tr[2]/td[11]').click

工作正常

amount=driver.find_element_by_xpath('//*[@id="Table_Cheque_Ref_Details"]/tbody/tr[2]/td[11]').text
print amount

返回经验字符串

  

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

超时异常

1 个答案:

答案 0 :(得分:1)

解决方案

正如@Andersson所述,您可以使用get_attribute('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'

分析

如果要使用开发工具:

img

我们将为input看到以下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}$">

标签中没有任何文本,这就是调用

的原因
print(input_el.text)

将不打印任何内容。如果HTML看起来像这样:

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

然后

print(label_el.text)

将在label标签-Email address*中打印文本。