स्पाइडर में सेलेनियम का उपयोग करके फ़ायरफ़ॉक्स चलाने की कोशिश कर रहा है। मेरा वर्तमान कोड है

from selenium import webdriver
import os
os.environ["PATH"] += ":/usr/local/bin/geckodriver"
browser = webdriver.Firefox()

और मुझे अभी भी यह त्रुटि मिलती है:

runfile('/Users/mherl/Dropbox/AnacondaProjects/MWS/MWSSpyder/test.py', 
wdir='/Users/mherl/Dropbox/AnacondaProjects/MWS/MWSSpyder')
Traceback (most recent call last):

  File "<ipython-input-1-3f3f96ccf515>", line 1, in <module>

runfile('/Users/mherl/Dropbox/AnacondaProjects/MWS/MWSSpyder/test.py', 
wdir='/Users/mherl/Dropbox/AnacondaProjects/MWS/MWSSpyder')

  File "/Applications/anaconda3/lib/python3.6/site- 
  packages/spyder/utils/site/sitecustomize.py", line 705, in runfile
  execfile(filename, namespace)

  File "/Applications/anaconda3/lib/python3.6/site- 
  packages/spyder/utils/site/sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "/Users/mherl/Dropbox/AnacondaProjects/MWS/MWSSpyder/test.py", 
line 12, in <module>
  browser = webdriver.Firefox()

  File "/Applications/anaconda3/lib/python3.6/site- 
packages/selenium/webdriver/firefox/webdriver.py", line 152, in 
__init__
self.service.start()

  File "/Applications/anaconda3/lib/python3.6/site- 
packages/selenium/webdriver/common/service.py", line 83, in start
os.path.basename(self.path), self.start_error_message)

WebDriverException: 'geckodriver' executable needs to be in PATH. 

भले ही gekodriver उस फोल्डर में हो।

proof that gekodriver is in the right place

मैंने ~./bash_profile को पथ निर्यात करने का भी प्रयास किया है जो अभी इस तरह दिखता है।

Last login: Fri Apr 20 10:57:16 on ttys000
dhcp-54-85:~ mherl$ nano ./bash_profile
dhcp-54-85:~ mherl$ nano .bash_profile
  GNU nano 2.0.6             File: .bash_profile                      
Modified  


# Setting PATH for Python 3.6
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH

# Setting PATH for Python 3.6
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH

# added by Anaconda3 5.1.0 installer
export PATH="/Applications/anaconda3/bin:$PATH"

#added by mherl to show path to gekodriver
export PATH=$PATH:/usr/local/bin/gekodriver

मेरे पास स्पाइडर में वर्तमान पथ भी हैं:

/usr/local/bin
/Users/mherl/Dropbox/AnacondaProjects/MWS/MWSSpyder

जिसमें से gekodriver में है

/usr/local/bin

मैंने हर जगह देखा है और ज्यादातर लोग कहते हैं कि अगर यह/usr/लोकल/बिन में है तो इसे स्वचालित रूप से चलाना चाहिए, लेकिन जब भी मैं स्पष्ट रूप से पथ बताता हूं तब भी यह इसे ढूंढ नहीं पाता है।

यदि यह महत्वपूर्ण है तो यह एक मैक हाई सिएरा चल रहा है।

3
Makenna Sophia Herl 20 अप्रैल 2018, 21:25

1 उत्तर

सबसे बढ़िया उत्तर

यह त्रुटि संदेश...

WebDriverException: 'geckodriver' executable needs to be in PATH. 

...इसका मतलब है कि गेकोड्राइवर अपेक्षित डिफ़ॉल्ट स्थान पर नहीं मिला।

समाधान

जैसा कि आप मैक आधारित सिस्टम का उपयोग कर रहे हैं, आपको कुंजी निष्पादन योग्य_पथ को मान के साथ पास करना होगा जिसमें GeckoDriver का em>पूर्ण पथ निम्नानुसार है:

from selenium import webdriver

browser = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver')

अतिरिक्त विचार

निम्नलिखित सुनिश्चित करें:

  • GeckoDriver निर्दिष्ट स्थान पर मौजूद है।
  • GeckoDriver के पास गैर-रूट उपयोगकर्ताओं के लिए निष्पादन योग्य अनुमति है।
  • अपने @Test को गैर-रूट उपयोगकर्ता के रूप में निष्पादित करें।
5
DebanjanB 21 अप्रैल 2018, 14:09