def testWaitsForExtensionToLoad(self): did_load_event = threading.Event() server = webserver.SyncWebServer() def RunServer(): time.sleep(5) server.RespondWithContent('<html>iframe</html>') did_load_event.set() thread = threading.Thread(target=RunServer) thread.daemon = True thread.start() crx = os.path.join(_TEST_DATA_DIR, 'ext_slow_loader.crx') driver = self.CreateDriver( chrome_switches=['user-agent=' + server.GetUrl()], chrome_extensions=[self._PackExtension(crx)]) self.assertTrue(did_load_event.is_set())
def __init__(self, logfile, server, chrome_binary, base_url=None): """Initialize the Replayer instance. Args: logfile: log file handle object to replay from. options: command-line options; see below. Needs at least options.chromedriver for the ChromeDriver binary. base_url: string, base of the url to replace in the logged urls (useful for when ports change). If any value is passed here, it overrides any base url passed in options. """ # TODO(cwinstanley) Add Android support and perhaps support for other # chromedriver command line options. self.executor = command_executor.CommandExecutor(server.GetUrl()) self.command_sequence = CommandSequence(logfile, base_url=base_url, chrome_binary=chrome_binary)