WebDriverException: необработанная ошибка инспектора с кодом «-3200» - PullRequest
0 голосов
/ 29 августа 2018

В настоящее время я работаю над приложением (python / django / redis) для отслеживания и регистрации перемещения зерна на ферме.

Мое основное приложение работает нормально, сейчас я пытаюсь заставить работать мою последнюю страницу.

Цель этой страницы - загрузить ее на вкладку samsung, находясь в зоне действия сети, а затем перейти в поле, чтобы собрать некоторые данные, которые регистрируются в localStorage.

Как только он закончил, он вернулся в сеть и нажал кнопку загрузки. Когда кнопка нажата, она отправляет запрос на публикацию, сообщая представлению, что необходимо собрать данные из 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"}

если я скопирую и вставлю URL, который кажется ему недействительным, он загрузится без проблем, поэтому я не совсем уверен, что делает его недействительным?

1 Ответ

0 голосов
/ 31 августа 2018

Если вы говорите, что ваш URL-адрес действителен, и вы получаете сообщение с недопустимым URL-адресом, попробуйте это: Попробуйте сохранить URL в Строковые литералы (отмечены как r ')

url = r'url_path_goes_here'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...