selenium之HTMLTestRunner练习
生活随笔
收集整理的這篇文章主要介紹了
selenium之HTMLTestRunner练习
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近工作不忙,開始學習python&selenium,有很多理解模糊的地方,做下記錄,希望大神可以指導。
練習1:
小插曲1:執行代碼以后,發現baidu.html空的,執行多次發現原因,必須關閉python執行窗口;
小疑問1:目前不太清楚方法close_alert_and_get_its_text,switch_to_alert;
錯誤1:執行多次偶爾會報錯,還在琢磨:
error1: ft1.3: Traceback (most recent call last):File "C:\learn_python\á·?°\baidu.py", line 44, in test_baidu_logindriver.find_element_by_css_selector("#u1 > a[name=\"tj_login\"]").click()File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 376, in find_element_by_css_selectorreturn self.find_element(by=By.CSS_SELECTOR, value=css_selector)File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 664, in find_element{'using': by, 'value': value})['value']File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 175, in executeself.error_handler.check_response(response)File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 166, in check_responseraise exception_class(message, screen, stacktrace) NoSuchElementException: Message: Unable to find element with css selector == #u1 > a[name="tj_login"]error2: ft1.1: Traceback (most recent call last):File "C:\learn_python\á·?°\baidu.py", line 21, in test_baidu_setdriver.find_element_by_css_selector("#u1 > a[name=\"tj_settingicon\"]").click()File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 376, in find_element_by_css_selectorreturn self.find_element(by=By.CSS_SELECTOR, value=css_selector)File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 664, in find_element{'using': by, 'value': value})['value']File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 175, in executeself.error_handler.check_response(response)File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 166, in check_responseraise exception_class(message, screen, stacktrace) NoSuchElementException: Message: Unable to find element with css selector == #u1 > a[name="tj_settingicon"]# -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException import unittest, time, re import HTMLTestRunner class Baidu(unittest.TestCase): def setUp(self): self.driver = webdriver.Ie() self.driver.implicitly_wait(30) self.base_url = "http://www.baidu.com" self.verificationErrors = [] self.accept_next_alert = True def test_baidu_set(self): u'測試百度設置' driver = self.driver driver.get(self.base_url + "/") driver.find_element_by_css_selector("#u1 > a[name=\"tj_settingicon\"]").click() time.sleep(2) driver.find_element_by_link_text("搜索設置").click() time.sleep(2) driver.find_element_by_link_text("保存設置").click() #self.assertEqual(u"已經記錄下您的使用偏好", self.close_alert_and_get_its_text()) #driver.switch_to_alert().accept() def test_baidu_search(self): u'測試百度搜索' driver = self.driver driver.get(self.base_url + "/") driver.find_element_by_id("kw").clear() driver.find_element_by_id("kw").send_keys("selenium") driver.find_element_by_id("su").click() time.sleep(2) driver.close() #測試登陸 def test_baidu_login(self): u'測試登陸' driver = self.driver driver.get(self.base_url + "/") driver.find_element_by_css_selector("#u1 > a[name=\"tj_login\"]").click() driver.find_element_by_id("TANGRAM__PSP_8__userName").click() driver.find_element_by_id("TANGRAM__PSP_8__userName").clear() driver.find_element_by_id("TANGRAM__PSP_8__userName").send_keys("用戶名") driver.find_element_by_id("TANGRAM__PSP_8__password").click() driver.find_element_by_id("TANGRAM__PSP_8__password").clear() driver.find_element_by_id("TANGRAM__PSP_8__password").send_keys("密碼") driver.find_element_by_id("TANGRAM__PSP_8__submit").click() time.sleep(5) driver.find_element_by_link_text("退出").click() driver.find_element_by_link_text("確定").click() def is_element_present(self, how, what): try: self.driver.find_element(by=how, value=what) except NoSuchElementException, e: return False return True def is_alert_present(self): try: self.driver.switch_to_alert() except NoAlertPresentException, e: return False return True def close_alert_and_get_its_text(self): try: alert = self.driver.switch_to_alert() alert_text = alert.text if self.accept_next_alert: alert.accept() else: alert.dismiss() return alert_text finally: self.accept_next_alert = True def tearDown(self): self.driver.quit() self.assertEqual([], self.verificationErrors) if __name__ == "__main__": #定義一個單元測試容器 testunit=unittest.TestSuite() #添加測試用例:百度設置 testunit.addTest(Baidu("test_baidu_set")) #添加測試用例:百度搜索 testunit.addTest(Baidu("test_baidu_search")) #添加測試用例:百度登陸 testunit.addTest(Baidu("test_baidu_login")) #輸出報告路徑 filename=u'C:\\learn_python\\練習\\baidu.html' #打開報告,輸入數據 fp=file(filename,'wb') #定義測試報告 runner = HTMLTestRunner.HTMLTestRunner( stream=fp, title=u'百度測試報告', description=u'用例執行情況:', ) runner.run(testunit)
轉載于:https://www.cnblogs.com/qq916653496/articles/4311588.html
總結
以上是生活随笔為你收集整理的selenium之HTMLTestRunner练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android APP开发文档模板
- 下一篇: mysql dbutil_DBUtil详