pdf2htmlEX/pdf2htmlEX/test/test_local_browser.py

47 lines
1.8 KiB
Python
Executable File

#!/usr/bin/env python
# Run browsers tests with a local Firefox
import unittest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.common.exceptions import WebDriverException
from browser_tests import BrowserTests
class test_local_browser(BrowserTests, unittest.TestCase):
@classmethod
def setUpClass(cls):
super(test_local_browser, cls).setUpClass()
if not cls.GENERATING_MODE:
cls.browser = webdriver.Firefox()
cls.browser.set_window_size(810, 1210)
#cls.browser.maximize_window() # (does not seem to maximize to size of the frame buffer)
size = cls.browser.get_window_size()
print(" browser size width: ", size['width'])
print(" browser size height: ", size['height'])
assert ((size['width'] >= cls.BROWSER_WIDTH) and (size['height'] >= cls.BROWSER_HEIGHT)), 'Screen is not large enough'
cls.browser.set_window_size(cls.BROWSER_WIDTH, cls.BROWSER_HEIGHT)
@classmethod
def tearDownClass(cls):
if not cls.GENERATING_MODE:
cls.browser.quit()
super(test_local_browser, cls).tearDownClass()
def generate_image(self, html_file, png_file, page_must_load=True):
try:
self.browser.get('file://' + html_file)
WebDriverWait(self.browser, 5) \
.until(expected_conditions.presence_of_element_located((By.ID, 'page-container')))
except WebDriverException as e:
if page_must_load:
raise e
finally:
self.browser.save_screenshot(png_file)
if __name__ == '__main__':
unittest.main()