2014-06-13 61 views
11

我遇到了一個有趣的異常,但我並不知道是什麼導致了它。Selenium Webdriver異常: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) 

我GOOGLE了這個例外,只找到了幾個網站,有與此相關的任何錯誤,但是他們都沒有,我所理解的解決方案。對我來說奇怪的是,在過去的一個月裏,我沒有遇到這個錯誤,今天當它開始發生時,我並沒有處理這個文件。

我一直在做的唯一修改是在另一個文件中,我一直在設置DynamoDb連接。我不明白這可能是相關的。另外我正在使用dynamodb連接文件,並且代碼沒有關聯。我所提供的網址沒有改變,錯誤中引用的文件中的代碼都沒有編輯好幾天。我試着恢復到我的代碼的早期階段,但錯誤仍然有時會出現。 S

我知道它是從一個文本文件讀取url,然後用selenium webdriver打開它們。我唯一能指出的是我已經改變了更新我的電腦與最新的蘋果軟件更新。有沒有其他人有這種經驗?在此之前,我開始更新我的MacBook Air至EFI固件更新版本2.8。

我看不到編輯其他文件會導致此錯誤的原因,因爲異常似乎發生在網頁驅動程序的.get函數中。

我在這裏檢查我的理智,我無法找到可能觸發此事的原因。在這個錯誤上幾乎沒有任何文檔可以在網上找到(截至發佈的5個Google結果)。

+1

嘗試搜索「f.QueryInterface不是函數」。你會得到更多的結果。前面的'u'就是Python,表示你有一個Unicode字符串。 –

+0

噢好吧我會嘗試,謝謝 – Tai

回答

7

在我的情況下,這只是從配置解析錯誤。

我得到了同樣的錯誤

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

網址,我寫的是放在引號,但是這是錯誤的。 網址應保持原樣,不得有任何引號。

你的錯誤在這裏self.execute(Command.GET, {'url': url})

只是刪除引號。

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? 

我重新安裝了火狐的Java和webdriver,並解決了我的問題。我不確定實際發生了什麼。我想在更新中可能會重定向:S。但是,如果有人遇到這種情況,我相信重新安裝所有導入/工具將解決此問題。不知道它是如何發生的,但這不是一個難以解決的問題。

@Luke伍德沃德 - 謝謝我沒有看到unicode部分。我也沒有意識到錯誤與此無關。

3

您應該使用此「http://」格式的URL(例如:「http://www.google.com」)。 如上所述更改您的代碼並運行它。

0

如果您正在使用ANGULAR

我得到這個錯誤,當我叫Capybara.current_session.visit('about')。這是通過本地,但在碼頭集裝箱失敗。這是因爲Docker容器在http://docker.myapp.com:3000上運行應用程序。它在本地傳遞是因爲我從瀏覽器中抓取了要設置的url,並且瀏覽器因爲角度而添加了「/#/」。當我將電話改爲Capybara.current_session.visit('/#/about')時,一切都很完美。

長話短說。如果你不使用'/#/',你可能會看到這個錯誤。另外,f.QueryInterface不是函數是有史以來最糟糕的錯誤消息。另外,檢查你的網址。

+0

有趣的是,我沒有運行角度,但這可能有助於其他人。謝謝! – Tai

相關問題