Ваш код правильный, но ваш код проверяет наличие элемента до полной загрузки страницы.Самое простое, что вы можете сделать, это добавить условие 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)