【问题标题】:Getting TypeError: "POST data should be bytes or an iterable of bytes. It cannot be str." while following simply online example获取 TypeError:“POST 数据应该是字节或字节的迭代。它不能是 str。”同时遵循简单的在线示例
【发布时间】:2012-05-24 21:13:53
【问题描述】:

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

当我尝试运行来自该网站的非常简单的示例时,标题中出现错误: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

感谢您的帮助。

【问题讨论】:

  • 你得到的错误是什么?

标签: python selenium python-3.2


【解决方案1】:

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

【讨论】:

  • 谢谢蒂姆。我在文档中环顾四周,错过了这一点让我有点尴尬。哦,好吧,必须以某种方式学习。谢谢!
【解决方案2】:

在线示例是在 Python 2 中,其中 strbytes 本质上是相同的。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    相关资源
    最近更新 更多