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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406299.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spark sql 上个月_Spark学习之路 (十八)SparkSQL简单使用

一、SparkSQL的进化之路1.0以前:Shark1.1.x开始:SparkSQL(只是测试性的) SQL1.3.x:SparkSQL(正式版本)Dataframe1.5.x:SparkSQL 钨丝计划1.6.x:SparkSQLDataFrameDataSet(测试版本)x:SparkSQLDataFrameDataSet(正式版本)SparkSQL:还有其他的…

Mac 生成SSH Key并配置到GitLab(单个)

Mac 生成SSH Key并配置到GitLab(单个)

一封写给自己的信

亲爱的自己,从今天起为了自己骄傲的活着吧,好好爱自己,没有人会心疼你,除了你妈妈。亲爱的自己,不要太在意一些人太在乎一些事,顺其自然以最佳心态面对,因为这世界就是这么不公平,往…

GetClientRect相当于GetWindowRect和ScreenToClient区别

From: http://www.cnblogs.com/yongtaiyu/archive/2011/05/18/2049554.html GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。 GetClientRect取得窗口客户区(…

汇编中call printf参数压栈时错误理解

EAX, ECX,EDX,EBX均可以32bit,16bit,8bit访问&#xff0c;如下所示: <-------------------EAX------------------------>|<----------------------|-----------|----------->|             |<---------AX--------->|             |&…

ajax传输json数据格式乱码_解决Ajax加载JSon数据中文乱码问题

一、问题描述使用zTree的异步刷新父级菜单时&#xff0c;服务器返回中文乱码&#xff0c;但项目中使用了SpringMvc&#xff0c;已经对中文乱码处理&#xff0c;为什么还会出现呢&#xff1f;此处为的异步请求的配置&#xff1a;Java代码async: {enable: true,url: basePath /s…

在命令提示符下输入的命令

ASSOC 显示或修改文件扩展名关联。ATTRIB 显示或更改文件属性。BREAK 设置或清除扩展式 CTRLC 检查。BOOTCFG 设置 boot.ini 文件的属性以便控制启动加载。CACLS 显示或修改文件的访问控制列表(ACL)。CALL 从另一个批处理…

(转载)WebSphere MQ安装过程

参考文档&#xff1a; http://www.ibm.com/developerworks/cn/linux/linux-speed-start/l-ss-mq/ 转载于:https://www.cnblogs.com/lichmama/p/4312577.html

Vue.config.productionTip = false 是什麽意思

Vue.config.productionTip false 是什麽意思

non-aggregates cannot be initialized with initializer list

From: http://blog.csdn.net/sp_daiyq/article/details/7008990 我定义了一个结构体&#xff0c;示意如下&#xff1a; [cpp] view plaincopyStruct A { int x; CString test; }; 然后我定义一个变量同时对其进行串行初始化&#xff1a; A a {0, "hello&q…

xxljob 配置具体定时任务_记一次xxl-job定时任务没有触发的问题

当初选了xxl-job就是因为它的触发机制比较靠谱,到点准时发,而且有日志可以看。 昨天突然发现部署在一台本地机器上的xxl-job到点并没有触发,且没有任何日志。通过管理页面查询触发日志,发现日志还是有的,只是和筛选条件不甚匹配。比如选取了昨天的日志,结果集中包含了今天…

TOMCAT启动完成但是ECLIPSE仍然显示starting....

最近重新部署了一个TOMCAT服务&#xff0c;但是启动碰到个问题&#xff0c;虽然TOMCAT控制台已显示启动成功&#xff0c;但是ECLIPSE右下角仍然一直显示STARTING&#xff0c;最后TOMCAT超时&#xff0c;启动失败。之前以为是拷贝工程的问题&#xff0c;但其实是SERVER配置的问题…

StatusCodeError: 400 - “{\“code\“:40000,\“error\“:\“错误 Error: 登录用户不是该小程序的开发者

StatusCodeError: 400 - “{\“code\“:40000,\“error\“:\“错误 Error: 登录用户不是该小程序的开发者

例解 autoconf 和 automake 生成 Makefile 文件

From: http://www.ibm.com/developerworks/cn/linux/l-makefile/ 简介&#xff1a; 本文介绍了在 linux 系统中&#xff0c;通过 Gnu autoconf 和 automake 生成 Makefile 的方法。主要探讨了生成 Makefile 的来龙去脉及其机理&#xff0c;接着详细介绍了配置 Configure.in 的方…

爱慕内衣信息化颠覆流程重构供应链

通过IT&#xff0c;爱慕内衣进行了供应链流程的颠覆和重构。在北京慕集团首席信息官赵先生脑海中&#xff0c;一直有着这样一幅“大图景”&#xff1a;只要需要&#xff0c;老总在自己的办公室里能看到每一寸原料的采购情况&#xff0c;每一件成衣的生产和销售情况&#xff0c;…

mysql中 课程1比课程2成绩高_小菜菜mysql练习解读分析1——查询 01 课程比 02 课程成绩高的学生的信息及课程分数...

查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数好的&#xff0c;第一道题&#xff0c;刚开始做&#xff0c;就栽了个跟头&#xff0c;爽歪歪&#xff0c;至于怎么栽跟头的——需要分析题目&#xff0c;查询的是&#xff0c;查询的是(1)学生的信息…