Если вы хотите сохранить данные на странице в определенный момент времени, вы можете
- получить исходный HTML-код текущей страницы , используя
WebDriver.page_source
функцию - запишите его в файл
- откройте файл с диска с помощью WebDriver.get () функция
- вот и все, вы должны иметь возможность работать слокальная копия страницы, которая никогда не изменится
Пример кода:
driver.get("http://seleniumhq.org")
with open("mypage.html", "w") as mypage:
mypage.write(driver.page_source)
mypage.close()
driver.get(os.getcwd() + "/" + (mypage.name))
#do what you need with the page source
другой подход - использование функции WebDriver.find_element везде, где вам нужно взаимодействовать сэлемент.
поэтому вместо
myelement = driver.find_element_by_xpath("//your_selector")
# some other action
myelement.getAttribute("interestingAttribute")
выполняйте find в любое время, когда вам нужно взаимодействовать с элементом:
driver.find_element_by_xpath("//your_selector").getAttribute("interestingAttribute")
или даже лучше пойти на Явное ожидание необходимого вам элемента:
WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.XPATH, "//your/selector"))).get_attribute("href")