[BangPypers] Howto run python selenium script on remote server
Syed Mushtaq
syed1.mushtaq at gmail.com
Thu Sep 29 12:43:59 CEST 2011
Does you server have X running ? If yes you might want to set the DISPLAY
env variable . If no then you must either run X or install something like
Xvfb[1] to make firefox run
[1] http://en.wikipedia.org/wiki/Xvfb
Thanks
-Syed
On Thu, Sep 29, 2011 at 2:26 PM, Saju M <sajuptpm at gmail.com> wrote:
> Hi,
> I created a script using selenium and its working in my local system.
> But when i trying to run it in remote machine (Centos), getting error.
> This script should need to open a firefox browser. So i think the the
> script could not open the firefox browser on remote machine(Server).
> Have any way to run it on remote machine(Server)?????.
>
>
> Traceback (most recent call last):
> File "script.py", line 34, in <module>
> s = Search()
> File "script.py", line 8, in __init__
> self.driver = webdriver.Firefox()
> File
> "/home/madfishe/env6/lib/python2.6/site-packages/selenium-2.7.0-py2.6.egg/selenium/webdriver/firefox/webdriver.py",
> line 46, in __init__
> self.binary, timeout),
> File
> "/home/madfishe/env6/lib/python2.6/site-packages/selenium-2.7.0-py2.6.egg/selenium/webdriver/firefox/extension_connection.py",
> line 46, in __init__
> self.binary.launch_browser(self.profile)
> File
> "/home/madfishe/env6/lib/python2.6/site-packages/selenium-2.7.0-py2.6.egg/selenium/webdriver/firefox/firefox_binary.py",
> line 44, in launch_browser
> self._wait_until_connectable()
> File
> "/home/madfishe/env6/lib/python2.6/site-packages/selenium-2.7.0-py2.6.egg/selenium/webdriver/firefox/firefox_binary.py",
> line 87, in _wait_until_connectable
> raise WebDriverException("Can't load the profile. Profile Dir :
> %s" % self.profile.path)
> selenium.common.exceptions.WebDriverException: Message: "Can't load
> the profile. Profile Dir : /tmp/tmpWmkFsy"
>
> ------------------------------------- script
>
> from selenium import webdriver
> import BeautifulSoup
> class Search:
> def __init__(self):
> self.url ='http://www.google.co.in'
> self.search_url = None
> self.driver = webdriver.Firefox()
>
> def search(self, search_query, search_location=None):
> if search_query:
> self.search_url = "%s/search?q=%s" %(self.url,
> search_query)
> self.driver.get(self.search_url)
> search_fld =
> self.driver.find_element_by_id("lst-ib")
> #help(search_fld)
> search_btn =
> self.driver.find_element_by_name("btnK")
> search_btn.submit()
> if search_location:
> self.change_location(search_location)
> html = self.driver.page_source
> soup=BeautifulSoup.BeautifulSoup(html)
> result = soup.findAll(attrs={"class" : "l"})
> return result
>
> def change_location(self, new_location):
>
> self.driver.find_element_by_id("toggle_location_link").click()
>
> self.driver.find_element_by_id("lc-input").send_keys(new_location)
> els = self.driver.find_elements_by_tag_name("input")
> set_el = [el for el in els if
> el.get_attribute('value')=='Set']
> #print "-------value-----", set_el[0].get_attribute('value')
> set_el[0].submit()
> s = Search()
> print"------search result------", s.search('python', 'kerala')
> _______________________________________________
> BangPypers mailing list
> BangPypers at python.org
> http://mail.python.org/mailman/listinfo/bangpypers
>
More information about the BangPypers
mailing list