最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解python3中用HTMLTestRunner.py報ImportError: No module named 'StringIO'如何解決

 更新時間:2019年08月27日 11:02:14   作者:測試那點事兒_TestYao  
這篇文章主要介紹了詳解python3中用HTMLTestRunner.py報ImportError: No module named 'StringIO'如何解決,感興趣的可以了解一下

python3中用HTMLTestRunner.py報ImportError: No module named 'StringIO'的解決方法:

1.原因是官網(wǎng)的是python2語法寫的,看官手動把官網(wǎng)的HTMLTestRunner.py改成python3的語法:

參考:http://bbs.chinaunix.net/thread-4154743-1-1.html

下載地址:http://tungwaiyip.info/software/HTMLTestRunner.html

修改后下載地址:HTMLTestRunner_jb51.rar (懶人直接下載吧)

2.修改匯總:

第94行,將import StringIO修改成import io

第539行,將self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()

第642行,將if not rmap.has_key(cls):修改成if not cls in rmap:

第766行,將uo = o.decode('latin-1')修改成uo = e

第775行,將ue = e.decode('latin-1')修改成ue = e

第631行,將print >> sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))

在Python3.4下使用HTMLTestRunner,開始時,引入HTMLTestRunner模塊報錯。

在HTMLTestRunner的94行中,是使用的StringIO,但是Python3中,已經(jīng)沒有StringIO了。取而代之的是io.StringIO。所以將此行修改成import io

在HTMLTestRunner的539行中,self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()

修改以后,成功引入模塊了

執(zhí)行腳本代碼:

# -*- coding: utf-8 -*-
#引入webdriver和unittest所需要的包
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re

#引入HTMLTestRunner包
import HTMLTestRunner  

class Baidu(unittest.TestCase):
  #初始化設(shè)置
  def setUp(self):
    self.driver = webdriver.Firefox()
    self.driver.implicitly_wait(30)
    self.base_url = "http://www.baidu.com/"
    self.verificationErrors = []
    self.accept_next_alert = True
  
  #百度搜索用例
  def test_baidu(self):
    driver = self.driver
    driver.get(self.base_url)
    driver.find_element_by_id("kw").click()
    driver.find_element_by_id("kw").clear()
    driver.find_element_by_id("kw").send_keys("Selenium Webdriver")
    driver.find_element_by_id("su").click()
    time.sleep(2)
    driver.close()

  def tearDown(self):
    self.driver.quit()
    self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
  #定義一個測試容器
  test = unittest.TestSuite()

  #將測試用例,加入到測試容器中
  test.addTest(Baidu("test_baidu"))

  #定義個報告存放的路徑,支持相對路徑
  file_path = "F:\\RobotTest\\result.html"
  file_result= open(file_path, 'wb')

  #定義測試報告
  runner = HTMLTestRunner.HTMLTestRunner(stream = file_result, title = u"百度搜索測試報告", description = u"用例執(zhí)行情況")

  #運行測試用例
  runner.run(test)
  file_result.close()

運行測試腳本后,發(fā)現(xiàn)報錯:

File "C:\Python34\lib\HTMLTestRunner.py", line 642, in sortResult

if not rmap.has_key(cls):

所以前往642行修改代碼:

運行后繼續(xù)報錯:

AttributeError: 'str' object has no attribute 'decode'

前往766, 772行繼續(xù)修改(注意:766行是uo而772行是ue,當(dāng)時眼瞎,沒有注意到這些,以為是一樣的,導(dǎo)致報了一些莫名其妙的錯誤,折騰的半天):

修改后運行,發(fā)現(xiàn)又報錯:

File "C:\Python34\lib\HTMLTestRunner.py", line 631, in run

print >> sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)

TypeError: unsupported operand type(s) for >>: 'builtin_function_or_method' and '_io.TextIOWrapper'

前往631查看,發(fā)現(xiàn)整個程序中,唯一一個print:

print >> sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime

這個是2.x的寫法,咱們修改成3.x的print,修改如下:

print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python3編碼問題 Unicode utf-8 bytes互轉(zhuǎn)方法

    Python3編碼問題 Unicode utf-8 bytes互轉(zhuǎn)方法

    今天小編就為大家分享一篇Python3編碼問題 Unicode utf-8 bytes互轉(zhuǎn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python中的urlparse()方法使用

    python中的urlparse()方法使用

    這篇文章主要介紹了python中的urlparse()方法使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • python正則表達式常見的知識點匯總

    python正則表達式常見的知識點匯總

    正則表達式提供了一些可用的匹配模式,比如忽略大小寫、多行匹配等,下面這篇文章主要給大家介紹了關(guān)于python正則表達式常見的知識點,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • Python HTTP下載文件并顯示下載進度條功能的實現(xiàn)

    Python HTTP下載文件并顯示下載進度條功能的實現(xiàn)

    這篇文章主要介紹了Python HTTP下載文件并顯示下載進度條功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • 如何利用python?turtle繪圖自定義畫布背景顏色

    如何利用python?turtle繪圖自定義畫布背景顏色

    Turtle庫是Python語言中一個很流行的繪制圖像的函數(shù)庫,想象一個小烏龜,在一個橫軸為x、縱軸為y的坐標系原點,(0,0)位置開始,這篇文章主要給大家介紹了關(guān)于如何利用python?turtle繪圖自定義畫布背景顏色的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • Python使用pandas導(dǎo)入xlsx格式的excel文件內(nèi)容操作代碼

    Python使用pandas導(dǎo)入xlsx格式的excel文件內(nèi)容操作代碼

    這篇文章主要介紹了Python使用pandas導(dǎo)入xlsx格式的excel文件內(nèi)容,基本導(dǎo)入是在Python中使用pandas導(dǎo)入.xlsx文件的方法是read_excel(),本文結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • Sanic框架Cookies操作示例

    Sanic框架Cookies操作示例

    這篇文章主要介紹了Sanic框架Cookies操作,結(jié)合實例形式分析了Sanic框架cookie讀取、寫入及刪除等簡單操作技巧,需要的朋友可以參考下
    2018-07-07
  • Django在win10下的安裝并創(chuàng)建工程

    Django在win10下的安裝并創(chuàng)建工程

    本篇文章主要介紹了Django在win10下的安裝并創(chuàng)建工程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Python中多線程和多進程的基本用法詳解

    Python中多線程和多進程的基本用法詳解

    這篇文章介紹了 Python 中多線程和多進程的相關(guān)知識,包括并發(fā)編程的優(yōu)勢,多線程和多進程的概念、適用場景、示例代碼,線程池和進程池的使用,以及如何選擇合適的并發(fā)方法,強調(diào)應(yīng)根據(jù)任務(wù)類型等因素綜合考慮,合理運用以提升程序效率,需要的朋友可以參考下
    2025-02-02
  • Python中正則表達式的詳細教程

    Python中正則表達式的詳細教程

    這篇文章主要介紹了Python中正則表達式的詳細教程,正則表達式是Python學(xué)習(xí)進階當(dāng)中的重要內(nèi)容,需要的朋友可以參考下
    2015-04-04

最新評論

唐河县| 镶黄旗| 崇明县| 康马县| 青神县| 淮北市| 伊宁市| 越西县| 天等县| 拉萨市| 福建省| 宜兴市| 北流市| 当阳市| 积石山| 亳州市| 北流市| 巫山县| 乐昌市| 吐鲁番市| 清涧县| 丽水市| 肇庆市| 阿勒泰市| 逊克县| 明水县| 花莲县| 临江市| 新巴尔虎左旗| 新野县| 花莲县| 盘锦市| 仁布县| 高青县| 屯留县| 开平市| 微博| 乐业县| 横山县| 海南省| 江孜县|