【问题标题】:Selenium Webdriver Exception: u'f.QueryInterface is not a functionSelenium Webdriver 异常:u'f.QueryInterface 不是函数
【发布时间】:2014-06-13 17:39:21
【问题描述】:

我遇到了一个有趣的异常,但我不知道是什么原因造成的。

这是我的例外:

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/fxdriver@googlecode.com/components/driver_component.js:8768)
    at DelayedCommand.prototype.executeInternal_/h (file:///var/folders/w5/w7rmb9zj7sz3wv8pq64c8h3h0000gn/T/tmpQcIHoK/extensions/fxdriver@googlecode.com/components/command_processor.js:10884)
    at DelayedCommand.prototype.executeInternal_ (file:///var/folders/w5/w7rmb9zj7sz3wv8pq64c8h3h0000gn/T/tmpQcIHoK/extensions/fxdriver@googlecode.com/components/command_processor.js:10889)
    at DelayedCommand.prototype.execute/<    (file:///var/folders/w5/w7rmb9zj7sz3wv8pq64c8h3h0000gn/T/tmpQcIHoK/extensions/fxdriver@googlecode.com/components/command_processor.js:10831) 

我用谷歌搜索了这个异常,只找到了几个与这个错误相关的网站,但是没有一个网站有我理解的解决方案。对我来说奇怪的是,在过去的 1 个月里我没有遇到这个错误,而今天它开始发生时我没有处理这个文件。

我所做的唯一修改是在另一个文件中,我一直在该文件中设置 DynamoDb 连接。我看不出这有什么关系。此外,我正在使用 dynamodb 连接文件,并且代码无法相关。我输入的 url 没有改变,错误中引用的文件中的任何代码都没有被编辑好几天。我尝试在我的代码中恢复到早期阶段,但有时仍然会出现错误。 S

我知道它是从文本文件中读取 url,然后使用 selenium webdriver 打开它们。我唯一能指出我改变的是用最新的苹果软件更新更新我的电脑。有没有其他人有这种经验?在此开始失败之前,我将我的 macbook air 更新为 EFI 固件更新版本 2.8。

我看不出编辑另一个文件会导致此错误的原因,因为异常似乎发生在 Web 驱动程序的 .get 函数中。

我在这里检查我的理智,我找不到可能触发这个的原因。几乎没有关于此错误的在线文档(截至发布时正好有 5 个谷歌搜索结果)。

【问题讨论】:

  • 尝试搜索 f.QueryInterface is not a function。你会得到更多的结果。前面的 u 只是 Python 表示你有一个 Unicode 字符串。
  • 哦,好的,我试试,谢谢

标签: python exception selenium webdriver amazon-dynamodb


【解决方案1】:

在我的情况下,这是从配置中解析错误。

我遇到了同样的错误

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

我写的网址用引号引起来了,但这是错误的。 网址应保持原样,不带任何引号。

你的错误在这里self.execute(Command.GET, {'url': url})

只需删除引号。

【讨论】:

    【解决方案2】:

    您应该使用这种“http://”格式的 URL(例如:“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 - 谢谢我没有看到 unicode 部分。我也没有意识到错误与此无关。

      【讨论】:

        【解决方案4】:

        如果您使用 Angular

        当我打电话给Capybara.current_session.visit('about') 时,我遇到了这个错误。这是在本地传递但在 docker 容器中失败。这是因为 docker 容器在 http://docker.myapp.com:3000 上运行应用程序。它在本地传递,因为我已经从浏览器中获取了要设置的 url,并且浏览器附加了 '/#/' 因为 angular.当我将呼叫更改为 Capybara.current_session.visit('/#/about') 时,一切正常。

        长话短说。如果您不使用“/#/”,您可能会在 Angular 中看到此错误。此外,f.QueryInterface is not a function 是有史以来最糟糕的错误消息。另外,请检查您的网址。

        【讨论】:

        • 有趣,我没有运行角度,但这可能对其他人有帮助。谢谢!
        猜你喜欢
        • 2012-04-04
        • 1970-01-01
        • 1970-01-01
        • 2015-05-03
        • 1970-01-01
        • 2020-04-25
        • 2018-09-08
        • 2015-07-19
        • 2014-10-31
        相关资源
        最近更新 更多