मेरे पास एक पायथन स्क्रिप्ट है जिसे केवल कॉल करने से ट्रिगर किया जाएगा 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
धन्यवाद! - सीके