最近工作不忙,开始学习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练习相关推荐

  1. Selenium自动化测试:8种元素定位+unittest框架设计

    作者简介: 笔名,唐米.参与过汇丰银行,国家电网,中国电信等多个大型项目的研发和管理,擅长的技术领域为安全测试,性能测试,自动化框架搭建与维护,曾受南京航空航天大学邀请分享Linux.oracle等测 ...

  2. 用python自动化做ecshop测试_Python-自动化测试面试

    1.以你做过的项目,举例来说一下你的自动化测试是怎么做的? 参考答案:就拿简历上的ecshop项目来说吧,在编写脚本前,我们会对系统进行评估,确认这个系统可不可以实现UI自动化,如果可以的话,就筛选出 ...

  3. web自动化测试---概述

    最早的时候是做功能测试,web都是自己手工点击看看有没问题,没有系统的进行测试,更别说自动化测试了,那是一段不堪回首的往事,就是因为这,很多问题都流出去了,这是作为测试人员的一大失职,痛定思痛,开始学 ...

  4. 自动化测试:Selenium8种元素定位+unittest框架设计

    作者简介: 笔名,软件测试君.参与过汇丰银行,国家电网,中国电信等多个大型项目的研发和管理,擅长的技术领域为安全测试,性能测试,自动化框架搭建与维护,曾受南京航空航天大学邀请分享Linux.oracl ...

  5. 2022最新自动化测试面试题及答案

    自动化测试是什么?自动化测试学什么?自动化测试面试题及答案?–看完后吊打面试官! 一.前言 最近有童鞋和我抱怨,说网上很难搜到那些全面又合适的自动化测试面试题,这里根据我个人的经验以及收集整理的: 你 ...

  6. 自动化测试面试题及答案,看完后吊打面试官!

    自动化测试是什么?自动化测试学什么?自动化测试面试题及答案?–看完后吊打面试官! 一.前言 最近有童鞋和我抱怨,说网上很难搜到那些全面又合适的自动化测试面试题,这里根据我个人的经验以及收集整理的: 你 ...

  7. 2021年最全的自动化测试面试题及答案--看完后吊打面试官!自动化测试是什么?自动化测试学什么?

    一.前言 最近有童鞋和我抱怨,说网上很难搜到那些全面又合适的自动化测试面试题,这里根据我个人的经验以及收集整理的: 你没看错,不慌,慢慢来. 先从什么是自动化测试开始说起哈! 二.什么是自动化测试? ...

  8. 【睡服】自动化面试官,就用2020年最全的自动化测试面试题及答案

    目录:导读 一.前言 二.什么是自动化测试? 三.自动化测试需要学什么技能? 四.2020年全网最全的自动化测试面试题和答案,原来干货都在这里 五.预祝面试成功,给您的OFFER,请收下! 一.前言 ...

  9. 2020年最全的自动化测试面试题及答案--看完后吊打面试官!自动化测试是什么?自动化测试学什么?

    一.前言 最近有童鞋和我抱怨,说网上很难搜到那些全面又合适的自动化测试面试题,这里根据我个人的经验以及收集整理的: 你没看错,不慌,慢慢来. 先从什么是自动化测试开始说起哈! 二.什么是自动化测试? ...

最新文章

  1. 终于搞懂了sleep/wait/notify/notifyAll
  2. C#让程序只运行一次实例
  3. 【雷达书籍分享】RADAR SYSTEMS ANALYSIS AND DESIGN USING MATLAB
  4. @entity 不限字节长度的类型_在微信程序员眼里,1024字节能玩出什么花样?
  5. LAMP搭建之三:php编译安装
  6. 数字游戏(水博客ing / csp-J T1 / luogu 5660)
  7. 264,avs中Skip宏块与Direct预测模式 ,对称模式的区别
  8. springboot使用mybatis_使用springboot+mybatis数据库存储服务化
  9. 有了这份程序员面试指南,你离大厂Offer还远吗?| 附推荐书籍
  10. 运用C#在采集时进行自动验证登录[转]
  11. 3dmax:3dmax三维VR渲染设置之高级灯光渲染(光度学—自由灯光、目标灯光、天空门户)图文教程之详细攻略
  12. Tensorflow+Keras+VGG19 猫狗大战分类
  13. 做游戏开发,选择Unity还是Unreal?
  14. 两个点 定位_智造讲堂:RFID定位导航技术
  15. 雅虎邮箱 转发设置_如何在Yahoo Mail中设置外出答复
  16. 【最优估计学习笔记】概率密度函数
  17. java 前置系统报文通讯方式_基于Geronimo的银行通讯前置系统的设计
  18. Vue H5 History 部署IIS上404问题
  19. c语言烧录芯片,入门扫盲!芯片程序的烧录过程,没想象那么难跟着走就行!...
  20. jupyter 启动后能打开页面 ,页面提示‘连接失败以及 TensorBoard的打开方法

热门文章

  1. 逻辑分析推理(戴帽子问题)博弈
  2. XP下修改IIS连接数
  3. Android Coding利器之掌握小技巧,助你Coding更上一层楼~
  4. spark mllib推荐算法使用
  5. 关于spring 获取不到网站上的xsd的处理记录
  6. Docker快速入门实践-纯干货文章
  7. 解决SQL命令行回退的问题
  8. 在linux 5上配置戴尔MD3220i
  9. SharePoint 2010-随机出现的页面性能问题
  10. Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 (ISO)