Selenium Webdriver Exception: u'f.QueryInterface не является функцией

Я столкнулся с интересным исключением, но у меня нет идеи, что вызвало ее.

Это мое исключение:

File "/Users/tai/Documents/workspace/testSelenium/testS/__init__.py", line 86, in runFlashY
    openWebsites()    File "/Users/tai/Documents/workspace/testSelenium/testS/__init__.py", line 50, in openWebsites
     newSwfFiles = Sniffer.openURL(line, []);
 File "/Users/tai/Documents/workspace/testSelenium/testS/Sniffer.py", line 98, in openURL
getAllFiles();
 File "/Users/tai/Documents/workspace/testSelenium/testS/Sniffer.py", line 211, in getAllFiles
outUrl= getredirectedUrl(b[place]);
  File "/Users/tai/Documents/workspace/testSelenium/testS/Sniffer.py", line 249, in getredirectedUrl
browser.get(s);
 File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 178, in get
self.execute(Command.GET, {'url': url})
  File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 166, in execute
    self.error_handler.check_response(response)
  File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 164, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: u'f.QueryInterface is not a function' ;       Stacktrace: 
    at FirefoxDriver.prototype.get (file:///var/folders/w5/w7rmb9zj7sz3wv8pq64c8h3h0000gn/T/tmpQcIHoK/extensions/[email protected]/components/driver_component.js:8768)
    at DelayedCommand.prototype.executeInternal_/h (file:///var/folders/w5/w7rmb9zj7sz3wv8pq64c8h3h0000gn/T/tmpQcIHoK/extensions/[email protected]/components/command_processor.js:10884)
    at DelayedCommand.prototype.executeInternal_ (file:///var/folders/w5/w7rmb9zj7sz3wv8pq64c8h3h0000gn/T/tmpQcIHoK/extensions/[email protected]/components/command_processor.js:10889)
    at DelayedCommand.prototype.execute/<    (file:///var/folders/w5/w7rmb9zj7sz3wv8pq64c8h3h0000gn/T/tmpQcIHoK/extensions/[email protected]/components/command_processor.js:10831) 

Я искал это исключение и нашел только несколько сайтов, которые были связаны с этой ошибкой, однако ни у кого из них не было решения, которое я понял. Что странно для меня, так это то, что за последний месяц я не сталкивался с этой ошибкой, и сегодня, когда он начал происходить, я не работал над этим файлом.

Единственные изменения, которые я делал, - это другой файл, в котором я настраивал соединение DynamoDb. Я не вижу, как это может быть связано. Кроме того, я работал с файлом подключения dynamodb, и нет никакого способа связать этот код. URL-адрес, который я загружаю, не изменился, ни один из кода в файлах, на которые ссылается ошибка, был отредактирован за несколько дней. Я попытался вернуться к предыдущей фазе моего кода, но ошибка все же появляется иногда. S

Я знаю, что он читает в URL-адресах из текстового файла, а затем открывает их с помощью selenium webdriver. Единственное, что я могу указать на то, что я изменил, - это обновление моего компьютера с помощью последнего обновления программного обеспечения Apple. Кто-нибудь еще имел этот опыт? Прежде чем это началось, я обновил свой macbook-воздух до версии прошивки EFI версии 2.8.

Я не вижу причины, по которой редактирование другого файла приведет к этой ошибке, поскольку исключение появляется в функции веб-драйвера .get.

Я проверяю мое рассудительность здесь, я не могу найти, что могло бы вызвать это. В этой ошибке нет практически никакой документации (ровно 5 результатов Google при публикации).

Ответ 1

В моем случае это был просто неправильный синтаксический анализ из config.

У меня такая же ошибка

selenium.common.exceptions.WebDriverException: Message: u'f.QueryInterface is not a function'

Url, который я написал, помещался в кавычки, но это неправильно. Url должен оставаться таким же, как и без кавычек.

Ваша ошибка здесь self.execute(Command.GET, {'url': url})

Просто удалите кавычки.

Ответ 2

вы должны использовать URL-адрес в этом формате "http://" (Ex: " http://www.google.com" ). Измените свой код, как указано выше, и запустите его.

Ответ 3

После помощи Люка:

Я нашел: https://code.google.com/p/selenium/issues/detail?id=6988

Мне удалось обойти эту проблему, выполнив следующие действия:

Downgrade to FF v25
Install java on the mac
Download and run selenium server
After running it once I stopped the selenium server

Reran the my project tests and it worked fine.

Maybe the foxdriver is not getting installed properly?

Я переустановил firefox java и webdriver, и это исправило мою проблему. Я не уверен, что происходит на самом деле. Я думаю, что, возможно, в обновлении что-то было перенаправлено: S. Но да, в случае, если кто-либо столкнется с этим, я верю, что переустановка всех ваших импортных/импортных инструментов решит проблему. Не знаю, как это произошло, но это было не сложно.

@Luke Woodward - спасибо, что я не видел часть юникода. Я также не понимал, что ошибка не связана с этим.

Ответ 4

ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ ANGULAR

Я получал эту ошибку, когда вызывал Capybara.current_session.visit('about'). Это проходило локально, но не было в контейнере докера. Это связано с тем, что контейнер докера запускал приложение на http://docker.myapp.com:3000. Он проходил локально, потому что я захватил URL-адрес из браузера, и браузер добавил '/#/', потому что angular. Когда я изменил вызов на Capybara.current_session.visit('/#/about'), все сработало отлично.

Короче говоря. Вы можете увидеть эту ошибку с помощью angular, если вы не используете '/#/'. Кроме того, f.QueryInterface не является функцией. Это худшее сообщение об ошибке. Также проверьте свои URL.