无法使用webdri从xpath拆分一个单元格的表中获取数据

2024-04-23 22:37:54 发布

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

无法从一个单元格的拆分表中获取数据,谢谢!你知道吗

Python代码

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("url")
print driver.find_element_by_xpath('//html/body/div/div[3]/table/tbody/tr[1]/td[4]/p[1]/span').text
print driver.find_element_by_xpath('//html/body/div/div[3]/table/tbody/tr[1]/td[4]/p[1]/i').text
print driver.find_element_by_xpath('//html/body/div/div[3]/table/tbody/tr[1]/td[4]/p[2]').text

预期结果

5    1-1/2    14.34

错误消息:

Unable to locate element: //html/body/div/div[3]/table/tbody/tr[1]/td[4]/p[1]/span

但实际上这个数据存在于表中


Tags: textdivbyhtmldrivertablebodyelement
1条回答
网友
1楼 · 发布于 2024-04-23 22:37:54

您的代码是正确的,但是您的代码正在检查页面完全加载之前的元素。 最简单的方法就是添加一个wait条件。你知道吗

在下面的代码中,驱动程序轮询HTML 20秒以加载一个元素。 在检查元素是否存在之前,它并不完全等待整个20秒,而是等待元素加载20秒,之后它将抛出一个NoSuchElementException

from selenium import webdriver

driver = webdriver.Firefox()
driver.implicitly_wait(20) # seconds

driver.get("url")
print(driver.find_element_by_xpath('//html/body/div/div[3]/table/tbody/tr[1]/td[4]/p[1]/span').text)
print(driver.find_element_by_xpath('//html/body/div/div[3]/table/tbody/tr[1]/td[4]/p[1]/i').text)
print(driver.find_element_by_xpath('//html/body/div/div[3]/table/tbody/tr[1]/td[4]/p[2]').text)

相关问题 更多 >