Python 无法使用XPath定义元素文本

Python 无法使用XPath定义元素文本,python,selenium,element,Python,Selenium,Element,有一个问题长期困扰着我。 我正在学习web元素定位和控制/读取网页中的文本 我试图赞扬打击和良好的元素的成功,但返回空 driver.find_element(By.XPATH, '//table[1]//tr[2]//td[1]').text 我想读取图片中的蓝线文本,但我不知道为什么每次都要获取空数据 这是因为表位于iframe中。为了能够处理表格,您必须切换到该框架: driver.switch_to.frame('frame') 若可以定位元素,但代码返回空字符串,那个么可以尝试 #

有一个问题长期困扰着我。 我正在学习web元素定位和控制/读取网页中的文本

我试图赞扬打击和良好的元素的成功,但返回空

driver.find_element(By.XPATH, '//table[1]//tr[2]//td[1]').text
我想读取图片中的蓝线文本,但我不知道为什么每次都要获取空数据


这是因为表位于iframe中。为了能够处理表格,您必须切换到该框架:

driver.switch_to.frame('frame')
若可以定位元素,但代码返回空字符串,那个么可以尝试

# In case element is hidden
driver.find_element(By.XPATH, '//table[1]//tr[2]//td[1]').get_attribute('textContent')

# In case text generated dynamically:
from selenium.webdriver.support.ui import WebDriverWait as wait

wait(driver, 5).until(lambda driver: driver.find_element(By.XPATH, '//table[1]//tr[2]//td[1]').text)

以文本格式共享HTML代码。您是如何知道它返回空值的,您打印了吗?您的意思是得到空输出还是得到异常?>>>driver.find_elementBy.XPATH,'//table[1]//tr[2]//td[1]'.text>>>>\n这是我的建议,因为我可以看到表下有3个tr,而您的td位于第3个tr。尽管我建议通过相对xpath以这种方式获得它,即使从表中添加或删除新元素,您的xpath也可以正常工作。谢谢,我已切换到框架,否则它将返回错误。我会尝试你的建议,并得到反馈给你。对不起!!糟糕的是,我已经收到了文本,这是因为我忘记打印返回值。谢谢大家。
driver.switchTo().frame("your frame")
Relative xpath:-driver.findelementByxpath("//td[@id='o_B1_2']");
absolute xpath:-driver.findElement(By.xpath("//table//tr[3]//th//td[1]"));;