blob: 609acaa1ab3eba5a7def0fca4dfed2cf6144171d [file] [log] [blame]
#!/usr/bin/env python
import json
import logging
from webkitpy.benchmark_runner.benchmark_runner import BenchmarkRunner
_log = logging.getLogger(__name__)
class WebDriverBenchmarkRunner(BenchmarkRunner):
name = 'webdriver'
def _get_result(self, driver):
result = driver.execute_script("return window.webdriver_results")
return result
def _run_one_test(self, web_root, test_file):
from selenium.webdriver.support.ui import WebDriverWait
try:
url = 'file://{root}/{plan_name}/{test_file}'.format(root=web_root, plan_name=self._plan_name, test_file=test_file)
driver = self._browser_driver.launch_driver(url, self._plan['options'], self._build_dir, self._browser_path)
_log.info('Waiting on results from web browser')
result = WebDriverWait(driver, self._plan['timeout'], poll_frequency=1.0).until(self._get_result)
driver.quit()
except Exception as error:
self._browser_driver.diagnose_test_failure(self._diagnose_dir, error)
raise error
finally:
self._browser_driver.close_browsers()
return json.loads(result)