|
32 | 32 | from selenium.webdriver.remote.errorhandler import NoSuchFrameException
|
33 | 33 | from selenium.webdriver.remote.errorhandler import NoSuchWindowException
|
34 | 34 | from seleniumbase.config import settings
|
| 35 | +from seleniumbase.core import log_helper |
35 | 36 |
|
36 | 37 |
|
37 | 38 | def is_element_present(driver, selector, by=By.CSS_SELECTOR):
|
@@ -488,6 +489,32 @@ def save_screenshot(driver, name, folder=None):
|
488 | 489 | pass
|
489 | 490 |
|
490 | 491 |
|
| 492 | +def save_page_source(driver, name, folder=None): |
| 493 | + """ |
| 494 | + Saves the page HTML to the current directory (or given subfolder). |
| 495 | + If the folder specified doesn't exist, it will get created. |
| 496 | + @Params |
| 497 | + name - The file name to save the current page's HTML to. |
| 498 | + folder - The folder to save the file to. (Default = current folder) |
| 499 | + """ |
| 500 | + if "." not in name: |
| 501 | + name = name + ".html" |
| 502 | + if folder: |
| 503 | + abs_path = os.path.abspath('.') |
| 504 | + file_path = abs_path + "/%s" % folder |
| 505 | + if not os.path.exists(file_path): |
| 506 | + os.makedirs(file_path) |
| 507 | + html_file_path = "%s/%s" % (file_path, name) |
| 508 | + else: |
| 509 | + html_file_path = name |
| 510 | + page_source = driver.page_source |
| 511 | + html_file = codecs.open(html_file_path, "w+", "utf-8") |
| 512 | + rendered_source = log_helper.get_html_source_with_base_href( |
| 513 | + driver, page_source) |
| 514 | + html_file.write(rendered_source) |
| 515 | + html_file.close() |
| 516 | + |
| 517 | + |
491 | 518 | def _get_last_page(driver):
|
492 | 519 | try:
|
493 | 520 | last_page = driver.current_url
|
|
0 commit comments