1

I have up and running an Apache Server with Python 3.x installed already on it. Right now I am trying to run ON the server a little python program (let's say filename.py). But this python program uses the webdriver for Chrome from Selenium. Also it uses sleep from time (but I think this comes by default, so I figure it won't be a problem)

from selenium import webdriver

When I code this program for the first time on my computer, not only I had to write the line of code above but also to manually download the webdriver for Chrome and paste it on /usr/local/bin. Here is the link to the file in case you wonder: Webdriver for Chorme

Anyway, I do not know what the equivalences are to configure this on my server. Do you have any idea how to do it? Or any concepts I could learn related to installing packages on an Apache Server?

1
  • Do see my answer and let me know if it helps Commented Apr 13, 2020 at 0:30

1 Answer 1

1

Simple solution:

You don't need to install the driver in usr/local/bin. You can have the .exe anywhere and you can specify that with an executable path, see here for an example.

Solution for running on a server

If you have python installed on the server, ideally >3.4 which comes with pip as default. Then install ChromeDriver on a standalone server, follow the instructions here

Note that, Selenium always need an instance of a browser to control.

Luckily, there are browsers out there that aren't that heavy as the usual browsers you know. You don't have to open IE / Firefox / Chrome / Opera. You can use HtmlUnitDriver which controls HTMLUnit - a headless Java browser that does not have any UI. Or a PhantomJsDriver which drives PhantomJS - another headless browser running on WebKit.

Those headless browsers are much less memory-heavy, usually are faster (since they don't have to render anything), they don't require a graphical interface to be available for the computer they run at and are therefore easily usable server-side.

Sample code of headless setup

op = webdriver.ChromeOptions()
op.add_argument('headless')
driver = webdriver.Chrome(options=op)

It's also worth reading on running Selenium RC, see here on that.

Sign up to request clarification or add additional context in comments.

6 Comments

Thanks so much for taking the time. I will give this a try for sure. Sorry for the late reply, I have been stucked with work. Again, thanks!
No worries. Let me know the outcome. Thanks
The code you gave me worked! Now no google chrome instance is open when I run the program. However, when I try to run it through the server, the following error appears on the /var/log/apache2/error_filename.log: " ModuleNotFoundError: No module named 'selenium' " That is why I was concerned about installing selenium/webdriver correctly
Did you do pip install selenium to install the selenium module on the srerver
I did pip install selenium on my terminal, that is why it works when I run the program through my computer. But when I try to run it through the server, the "ModuleNotFoundError" appears
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.