Xvfb: फेडोरा पर ब्राउज़र के माध्यम से परीक्षण स्क्रिप्ट चलाने पर कनेक्शन ने इनकार कर दिया


1

मेरे पास एक पायथन स्क्रिप्ट है जिसे केवल कॉल करने से ट्रिगर किया जाएगा my.ip.address/test। यह ठीक काम करता है अगर मैं कमांड लाइन के माध्यम से PHP कोड चलाते हैं।

हालांकि, अगर मैं निर्दिष्ट url का उपयोग करके ब्राउज़र के माध्यम से परीक्षण स्वचालन का उपयोग करता हूं, तो यह मुझे यह त्रुटि देता है:

Traceback (most recent call last): File "scripts/crawler.py",
line 10, in driver = webdriver.Firefox(capabilities={"marionette":True}) File "/usr/lib/python2.7/site-packages/selenium/webdriver/firefox/webdriver.py",
line 152, in __init__ keep_alive=True) File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py",
line 98, in __init__ self.start_session(desired_capabilities, browser_profile) File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py",
line 188, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py",
line 252, in execute self.error_handler.check_response(response) File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py",    
line 194, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: connection refused

Geckodriver.log में त्रुटि:

1495299180874   geckodriver::marionette INFO    Starting browser /usr/lib/firefox/firefox with args ["-marionette"]
Unable to init server: Could not connect: Connection refused
Error: cannot open display: :99

सरल पायथन कोड:

#!/usr/bin/env python2

from pyvirtualdisplay import Display
from selenium import webdriver   
import time
import sys

driver = webdriver.Firefox(capabilities={"marionette":True})

display = Display(visible=0, size=(800,600))
display.start()

driver.get('https://www.google.com')
print driver.title
driver.close()
display.stop()

PHP कोड स्निपेट के लिए /test अंत बिंदु:

$cmd = 'xvfb-run -a python scripts/crawler.py'
return shell_exec($cmd);

पहले से स्थापित Xvfb और इसे चलाएं:

$ whoami
  codekaizer #with root privileges
$ Xvfb :99 -screen 0 1024x768x24 -ac -fbdir /tmp/.X11-unix/X99 &

मैंने सत्यापित किया है कि /tmp/.X11-unix/X99 सॉकेट सुन रहा है Xvfb प्रक्रिया।

मैं अभी बहुत फंस गया हूँ और वास्तव में किसी की मदद की सराहना करता हूँ!

विवरण:

  • फ़ायरफ़ॉक्स 53.0
  • जेकोड्रीवर 0.16.1
  • फेडोरा 22 x86_64

धन्यवाद! - सीके

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.