7

I have a python script generated from selenium, it works fine on my localhost.

Now I want to run it from my web hosting, I already checked that my web hosting support python.

If not possible, is there an alternative solution for selenium?

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re

class HellowWorld(unittest.TestCase):
def setUp(self):
    self.driver = webdriver.Firefox()
    self.driver.implicitly_wait(30)
    self.base_url = "https://www.google.com/"
    self.verificationErrors = []
    self.accept_next_alert = True

def test_hellow_world(self):
    driver = self.driver
    driver.get(self.base_url + "/")
    driver.find_element_by_id("lst-ib").clear()
    driver.find_element_by_id("lst-ib").send_keys("hello world")

def is_element_present(self, how, what):
    try: self.driver.find_element(by=how, value=what)
    except NoSuchElementException as e: return False
    return True

def is_alert_present(self):
    try: self.driver.switch_to_alert()
    except NoAlertPresentException as e: return False
    return True

def close_alert_and_get_its_text(self):
    try:
        alert = self.driver.switch_to_alert()
        alert_text = alert.text
        if self.accept_next_alert:
            alert.accept()
        else:
            alert.dismiss()
        return alert_text
    finally: self.accept_next_alert = True

def tearDown(self):
    self.driver.quit()
    self.assertEqual([], self.verificationErrors)

 if __name__ == "__main__":
unittest.main()
2
  • how do you run other programs from your web host server? It would be no different. You'll just need to make sure that you have all of your required modules installed (I would speculate that they probably don't have selenium module there, for instance). Commented Oct 21, 2016 at 19:45
  • Did you ever find a solution to this? Commented Mar 17, 2017 at 10:14

2 Answers 2

1

I found a good alternative based on google's puppeteer library. All information that do you need is in this web page pypeteer

You can install it using: pip install pyppeteer

Here an example of code to take a screenshoot:

import asyncio
from pyppeteer import launch

async def main():
 browser = await launch()
 page = await browser.newPage()
 await page.goto('https://example.com')
 await page.screenshot({'path': 'example.png'})
 await browser.close()

asyncio.get_event_loop().run_until_complete(main())
Sign up to request clarification or add additional context in comments.

1 Comment

Please explain how the link relates to the question and how it works.
0

I think that the best option is to connect to a remote webdriver setting a remote host with selenium port. Example: http://remotehost:4444

 const {Builder} = require('selenium-webdriver');
 const firefox = require('selenium-webdriver/firefox');

 let options = new firefox.Options()
 .setProfile('/profile/path/on/remote/host')
 .setBinary('/install/dir/on/remote/host/firefox-bin');

  let driver = new Builder()
 .forBrowser('firefox')
 .usingServer('http://{remote-host}:4444/wd/hub')
 .setFirefoxOptions(options)
 .build();

Comments

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.