On 12/22/2016 03:54 AM, Alan Gauld via Tutor wrote:
On 22/12/16 03:37, Jim Byrnes wrote:
Python 3.4 on Ubuntu

If I was going to open a libreoffice calc file from the terminal I would
go: libreoffice --calc /home/path/to/myfile.ods.

How would I do this from Python?

Others have advised how to run the Libreoffice app from
within Python.

If you really want to open the actual spreadsheet file
in Python rather than Libreoffice then its a bit more tricky.
If that is what you really meant get back to us and
we can start on the options available...



First thanks to everyone that responded pointing me in the right direction.

Alan,

I want to open Libreoffice with a particular file loaded.

I started out to write a libreoffice macro in python to go to a website, get some info, copy it to the clipboard and then paste it in libreoffice calc.

I started out by writing a script using Selenium that successfully did what I wanted. Once I had it working the plan was to put it in a macro. When I did that I got a large error message where both libreoffice and selenium complained. I seemed to say that the first element of the webpage I tried to manipulate was in a state that it could not be interacted with, even though outside of libreoffice the script ran fine.

This got me thinking that maybe I should attack the problem from the other end, ie run the script and have it load libreoffice at the end. Hence my question.

for completeness here is the error msg I received:

com.sun.star.uno.RuntimeExceptionError during invoking function login in module file:///home/jfb/.config/libreoffice/4/user/Scripts/python/funds/funds.py (<class 'selenium.common.exceptions.InvalidElementStateException'>: Message: invalid element state: Element is not currently interactable and may not be manipulated
  (Session info: chrome=55.0.2883.87)
(Driver info: chromedriver=2.25.426924 (649f9b868f6783ec9de71c123212b908bf3b232e),platform=Linux 4.4.0-57-generic x86_64)


/usr/local/lib/python3.4/dist-packages/selenium/webdriver/remote/errorhandler.py:192 in function check_response() [raise exception_class(message, screen, stacktrace)]

/usr/local/lib/python3.4/dist-packages/selenium/webdriver/remote/webdriver.py:236 in function execute() [self.error_handler.check_response(response)]

/usr/local/lib/python3.4/dist-packages/selenium/webdriver/remote/webelement.py:494 in function _execute() [return self._parent.execute(command, params)]

/usr/local/lib/python3.4/dist-packages/selenium/webdriver/remote/webelement.py:92 in function clear() [self._execute(Command.CLEAR_ELEMENT)] /home/jfb/.config/libreoffice/4/user/Scripts/python/funds/funds.py:29 in function login() [username.clear()] /usr/lib/libreoffice/program/pythonscript.py:869 in function invoke() [ret = self.func( *args )]
)


_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to