geckodriver没有使用selenium和Django在ubuntu上打开firefox

2024-09-29 22:45:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我花了一整天来解决这个问题。我的selenium代码在windows上与chromedriver和geckodriver完美配合,我需要芹菜,我最好的选择是切换到我的ubuntu操作系统(版本20)。页面应该显示刮取的数据显示消息:连接被拒绝。geckodriver是版本26 这就是错误所在

File "/home/maro/Desktop/crypto/cert/lib/python3.8/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/home/maro/Desktop/crypto/cert/lib/python3.8/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/home/maro/Desktop/crypto/cert/lib/python3.8/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/maro/Desktop/crypto/forex/views.py", line 80, in pricelist
    driver = webdriver.Firefox(executable_path='/usr/bin/geckodriver')
  File "/home/maro/Desktop/crypto/cert/lib/python3.8/site-packages/selenium/webdriver/firefox/webdriver.py", line 170, in __init__
    RemoteWebDriver.__init__(
  File "/home/maro/Desktop/crypto/cert/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/home/maro/Desktop/crypto/cert/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/home/maro/Desktop/crypto/cert/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/maro/Desktop/crypto/cert/lib/python3.b/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: connection refused

我已经将我的firefox版本从75升级到80,但仍然没有任何变化。我已经多次更改驱动程序路径,但错误仍然没有改变

这是我的壁虎河日志

1594416320001   mozrunner::runner   INFO    Running command: "/usr/bin/firefox" "-marionette" "-foreground" "-no-remote" "-profile" "/tmp/rust_mozprofileS5CJqR"

geckodriver是可执行的,我还检查了主机,看看本地主机是否连接到127.0。。。。是的,是的。我完全糊涂了

这是我的看法

import time
import selenium
from django.shortcuts import render
from django.contrib.auth import login, authenticate, logout
from .forms import SignUpForm
from django.shortcuts import render, redirect

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.by import By
def pricelist(request):
    driver = webdriver.Firefox(executable_path='/usr/bin/geckodriver')
    driver.get('')
    data = []
    while not data:

        
        for elm in driver.find_elements(By.CSS_SELECTOR, "span[data-field=CPT]"):
            if elm.text and elm.text != '-':
                data.append(elm.text)
                
            
        time.sleep(3)
           
    context = {
        "price": 123,
        "mydata": data
    }

    return render(request, 'pricelist.html', context)

Tags: inpyimporthomecertresponselibselenium

热门问题