我试图从动态加载表中获取价值,当我单击TD元素时,一切正常。 但是,当我尝试从同一个TD获取文本时,它正在返回tempity字符串。 我已经尝试过XPATH,CSS_Selector
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'))打印量
超时异常
答案 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'
如果要使用开发工具:
我们将为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*
中打印文本。