2

The solution to this question worked, however the loop breaks after 3 iterations and returns the following message which I am struggling to interpret.

---------------------------------------------------------------------------
WebDriverException                        Traceback (most recent call last)
<ipython-input-26-c6224480ee8c> in <module>
     26     chart=(background + choro1_5).configure_view(stroke='white')
     27     filename = f"{name}.svg"
---> 28     save(chart, filename, method='selenium', webdriver=driver)
     29 #driver.quit()

~\Anaconda3\lib\site-packages\altair_saver\_core.py in save(chart, fp, fmt, mode, method, **kwargs)
     75     saver = Saver(spec, mode=mode, **kwargs)
     76 
---> 77     saver.save(fp=fp, fmt=fmt)
     78 
     79 

~\Anaconda3\lib\site-packages\altair_saver\savers\_saver.py in save(self, fp, fmt)
     86             raise ValueError(f"Got fmt={fmt}; expected one of {self.valid_formats}")
     87 
---> 88         content = self.mimebundle(fmt).popitem()[1]
     89         if isinstance(content, dict):
     90             with maybe_open(fp, "w") as f:

~\Anaconda3\lib\site-packages\altair_saver\savers\_saver.py in mimebundle(self, fmts)
     66                     f"invalid fmt={fmt!r}; must be one of {self.valid_formats}."
     67                 )
---> 68             bundle.update(self._mimebundle(fmt))
     69         return bundle
     70 

~\Anaconda3\lib\site-packages\altair_saver\savers\_selenium.py in _mimebundle(self, fmt)
    249 
    250     def _mimebundle(self, fmt: str) -> Mimebundle:
--> 251         out = self._extract(fmt)
    252         mimetype = fmt_to_mimetype(
    253             fmt,

~\Anaconda3\lib\site-packages\altair_saver\savers\_selenium.py in _extract(self, fmt)
    245                 )
    246         return driver.execute_async_script(
--> 247             EXTRACT_CODE, self._spec, self._mode, self._scale_factor, fmt
    248         )
    249 

~\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py in execute_async_script(self, script, *args)
    657         return self.execute(command, {
    658             'script': script,
--> 659             'args': converted_args})['value']
    660 
    661     @property

~\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py in execute(self, driver_command, params)
    319         response = self.command_executor.execute(driver_command, params)
    320         if response:
--> 321             self.error_handler.check_response(response)
    322             response['value'] = self._unwrap_value(
    323                 response.get('value', None))

~\Anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py in check_response(self, response)
    240                 alert_text = value['alert'].get('text')
    241             raise exception_class(message, screen, stacktrace, alert_text)
--> 242         raise exception_class(message, screen, stacktrace)
    243 
    244     def _value_or_default(self, obj, key, default):

WebDriverException: Message: unknown error: call function result must be a dictionary
  (Session info: chrome=79.0.3945.130)
CAPSLOCK
  • 6,243
  • 3
  • 33
  • 56
  • Possible solution: https://stackoverflow.com/questions/45688020/chrome-not-reachable-selenium-webdriver-error – jakevdp Feb 12 '20 at 14:01
  • @jakevdp Hi, I checked the linked solution but that didn't work (I don't have that reg key in my system). I also updated the question with the new error I get (not sure why it changed). Now I get a: `WebDriverException: Message: unknown error: call function result must be a dictionary` – CAPSLOCK Feb 12 '20 at 14:27
  • I'm also getting the same error at the second iteration. Were you able to solve the issue? – WestFlame Jul 17 '20 at 09:52
  • @WestFlame Can't recall to be honest, I believe I did but can't remember how. I suggest you to try update your versions of altair, altair_saver and everything related – CAPSLOCK Jul 17 '20 at 13:05

1 Answers1

1

Running a similar process to iterate through a collection of records and print charts. Was hitting a similar error in 3.2. I believe this is fixed in Altair 4.0.1

Good luck!

davidkunio
  • 123
  • 7