Selenium Webdriver异常:u'f.QueryInterface不是一个函数

时间:2014-06-13 17:39:21

标签: python exception selenium webdriver amazon-dynamodb

我遇到了一个有趣的例外,但我不知道是什么导致了它。

这是我的例外:

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) 

我搜索了这个例外,并且发现了一些与此错误有关的网站,但是没有一个网站有我理解的解决方案。对我来说奇怪的是,在过去的一个月里,我没有遇到这个错误,今天当它开始出现时我没有处理这个文件。

我所做的唯一修改是在我设置DynamoDb连接的另一个文件中。我不知道这是如何相关的。另外我正在使用dynamodb连接文件,并且代码无法相关。我输入的网址没有改变,错误中引用的文件中的代码都没有被编辑好几天。我尝试恢复到我的代码中的早期阶段,但有时仍会出现错误。小号

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

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

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

4 个答案:

答案 0 :(得分:7)

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

我得到了同样的错误

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

我写的网址放在引号中,但是错了。 网址应保持原样,不带任何引号。

您的错误self.execute(Command.GET, {'url': url})

只需删除引号。

答案 1 :(得分:3)

你应该使用这个&#34; http://&#34;格式(例如:&#34; http://www.google.com&#34;)。 如上所述更改代码并运行它。

答案 2 :(得分:0)

在卢克的帮助下:

我找到了: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部分。我也没有意识到错误与此无关。

答案 3 :(得分:0)

如果您使用的话是

我打电话给Capybara.current_session.visit('about')时收到此错误。这是在本地传递但在docker容器中失败。这是因为docker容器正在http://docker.myapp.com:3000上运行应用程序。它是在本地传递的,因为我抓住了从浏览器设置的URL并且浏览器附加了'/#/'因为有角度。当我将呼叫改为Capybara.current_session.visit('/#/about')时,一切都运行良好。

长话短说。如果不使用'/#/',您可能会看到带有角度的错误。此外, f.QueryInterface不是函数是有史以来最糟糕的错误消息。另外,请检查您的网址。