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

2024-09-25 16:35:06 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我想看看下面的金额 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

返回empity字符串

amount = WebDriverWait(driver, 10).until(EC.text_to_be_present_in_element((By.XPATH, '//*[@id="xfe38"]'), '0')) print amount

超时异常


Tags: 字符串refidbydrivertableelementfind
1条回答
网友
1楼 · 发布于 2024-09-25 16:35:06

解决方案

正如@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:

^{pr2}$

它的标签中没有任何文本,所以调用

^{3}$

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

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

那么

print(label_el.text)

将打印label标记-Email address*内的文本。在

相关问题 更多 >