2012-05-24 23 views
2

,而我試圖瞭解一些自動化測試,但都打在啓動牆上的權利。獲取TypeError:「POST數據應該是字節或可迭代的字節,它不能是str。」下面簡單的在線例子

我得到了錯誤的標題時,我嘗試從這個網站非常簡單的例子:https://gist.github.com/1126917

下面的代碼:

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Firefox() 
driver.get("http://www.python.org") 
assert "Python" in driver.title 
elem = driver.find_element_by_name("q") 
elem.send_keys("selenium") 
elem.send_keys(Keys.RETURN) 
assert "Google" in driver.title 
driver.close() 

我試圖調試,但我對此沒有任何運氣。我什至不能告訴哪些數據輸入錯誤。請記住,我只是將大部分這些東西安裝到了我的環境中,所以我一直沒有搞亂。

相關信息:

  • 的Python 3.2.3
  • 硒2個

感謝您的幫助。

+0

準確的錯誤是什麼? – James

回答

1

As stated in the docs,Python的Selenium綁定只與Python 2.6和2.7兼容。

+0

謝謝蒂姆。我的文檔環顧四周,我有點不好意思地錯過了這一點。哦,不得不學習。謝謝! –

1

在線的例子是在Python 2,其中strbytes在本質上是一樣的。

看一看this或解釋更好this

簡而言之,在Python 3中,您需要在str(這是一個Unicode字符串)和bytes(它是一個編碼字符串)之間進行顯式轉換。這是Python 2.x和3.x之間的主要區別之一。

考慮到Tim's answer,錯誤最可能發生在selenium模塊的某處,因此您應該安裝Python 2.7以使用Selenium。

相關問題