获取TypeError:“POST数据应该是字节或可迭代的字节。它不能是str。”而只是简单的在线示例

时间:2012-05-24 21:13:53

标签: python selenium python-3.2

我正在尝试学习一些自动测试,但一开始就碰壁了。

当我尝试从此网站运行一个非常简单的示例时,我在标题中收到错误: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
  • Selenium 2

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

在线示例在Python 2中,其中strbytes基本相同。

请查看this或更好this以获取解释。

简而言之,在Python 3中,您需要在str(Unicode字符串)和bytes(编码字符串)之间进行显式转换。这是Python 2.x和3.x之间的主要区别之一。

考虑Tim's answer,错误最有可能发生在selenium模块内的某处,因此您应该安装Python 2.7以使用Selenium。