WebDriverException:未处理的检查器错误,代码为“-3200”

问题描述 投票:0回答:1

我正在开发一个应用程序(python / django / redis)来跟踪和记录农场的谷物运动。

我的主应用程序工作正常,我现在正试图让我的最后一页工作。

该页面的目标是让用户在网络到达时将其加载到他的三星选项卡上,然后进入该字段以收集一些在localStorage中注册的数据。

完成后,他回到网络的范围并按下加载按钮。当按下按钮时,它发送一个post请求,告诉视图它需要从localStorage收集数据并将其放入Redis密钥。

以下是视图的代码:

def creationField(request):
    if request.method == 'POST':
        driver = webdriver.Chrome() 
        url='XXX.X.X.XX:XXXX/XXXXXXX/XXXXXXX'
        driver.get(url)
        storage = LocalStorage(driver)

        for i in range(1,50) :
            keyCubage = 'Wagon_'+ str(i) + '_cubageWagon'
            keyLimite = 'Wagon_'+ str(i) + '_limiteWagon'
            keyCiterne = 'Wagon_'+ str(i) + '_numCiterne'
            keyPBM = 'Wagon_'+ str(i) + '_pbmWagon'
            keyTar = 'Wagon_'+ str(i) + '_tarWagon'

            cubageWagon = storage.get(keyCubage)
            limiteWagon = storage.get(keyLimite)
            numCiterne = storage.get(keyCiterne)
            pbmWagon = storage.get(keyPBM)
            tarWagon = storage.get(keyTar)

            if (cubageWagon == None or limiteWagon == None or numCiterne == None or pbmWagon == None or tarWagon == None):
                result = "Break"
                break
            else:
                result = "REDIS WORK"
                r = redis.StrictRedis(host=settings.REDIS_AD, port=settings.REDIS_PORT, db='14')
                key = 'Wagon_' + str(i)
                r.hmset(key, {'Cubage': cubageWagon, 'limite': limiteWagon, 'numCiterne': numCiterne, 'pbmWagon': pbmWagon, 'tarWagon': tarWagon})
    return render(request, 'creationField.html', locals())

LocalStorage类:

class LocalStorage:

    def __init__(self, driver) :
        self.driver = driver

    def __len__(self):
        return self.driver.execute_script("return window.localStorage.length;")

    def items(self) :
        return self.driver.execute_script( \
            "var ls = window.localStorage, items = {}; " \
            "for (var i = 0, k; i < ls.length; ++i) " \
            "  items[k = ls.key(i)] = ls.getItem(k); " \
            "return items; ")

    def keys(self) :
        return self.driver.execute_script( \
            "var ls = window.localStorage, keys = []; " \
            "for (var i = 0; i < ls.length; ++i) " \
            "  keys[i] = ls.key(i); " \
            "return keys; ")

    def get(self, key):
        return self.driver.execute_script("return window.localStorage.getItem(arguments[0]);", key)

    def set(self, key, value):
        self.driver.execute_script("window.localStorage.setItem(arguments[0], arguments[1]);", key, value)

    def has(self, key):
        return key in self.keys()

    def remove(self, key):
        self.driver.execute_script("window.localStorage.removeItem(arguments[0]);", key)

    def clear(self):
        self.driver.execute_script("window.localStorage.clear();")

    def __getitem__(self, key) :
        value = self.get(key)
        if value is None :
          raise KeyError(key)
        return value

    def __setitem__(self, key, value):
        self.set(key, value)

    def __contains__(self, key):
        return key in self.keys()

    def __iter__(self):
        return self.items().__iter__()

    def __repr__(self):
        return self.items().__str__()

我很肯定本地存储不是问题,我能够用我试过的一些js写/读。

我当前的问题是,当我按下加载按钮并发送帖子我的页面崩溃时出现以下错误:

Message: unknown error : unhandled inspector error:{"Code":"-32000", "message","Cannot navigate to invalid URL"}

如果我复制粘贴似乎对他无效的网址,它加载没有问题,所以我不确定是什么让网址对他无效?

python selenium-webdriver webdriver
1个回答
0
投票

如果您说您的网址有效且您收到的网址邮件无效,请尝试以下操作:尝试将网址存入String literals(标记为r')

url = r'url_path_goes_here'
© www.soinside.com 2019 - 2024. All rights reserved.