【selenium2】【unittest】
#栗子
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest ,time,re class BaiduTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
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').clear()
driver.find_element(By.ID,'kw').send_keys('selenium ide')
driver.find_element(By.ID,'su').click()
def is_element_present(self,how,what):
try:
self.driver.find_element(by=how,value=what)
except NoSuchElementException as e:
return False
return True def is_alert_present(self):
try:
self.driver.switch_to_alert()
except NoAlertPresentException as 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:
#表示是否继续接受下一个警告,初始化状态为 Ture
self.accept_next_alert = True def tearDown(self):
self.driver.quit()
self.assertEqual([],self.verificationErrors)
if __name__ == '__main__':
unittest.main() #栗子
#用于判断素数
def is_prime(n):
if n<=1:
return False
for i in range(2,n):
if n%i == 0:
return False
return True import unittest class Test(unittest.TestCase):
def setUp(self):
pass def test_case(self):
self.prime = is_prime(4)
self.assertTrue(self.prime,msg='Is not prime!!') def tearDown(self):
pass if __name__ == '__main__':
unittest.main() #结果 AssertionError: False is not true : Is not prime!! #栗子 登录126
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import unittest class TestLogin(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(5)
self.base_url = 'http://mail.qq.com'
self.verificationErrors = []
self.accept_next_alert = True def test_login(self):
driver = self.driver
driver.get(self.base_url) #登录
if driver.find_element(By.CSS_SELECTOR, 'iframe#login_frame').is_displayed():
driver.switch_to.default_content()
driver.switch_to.frame(driver.find_element(By.CSS_SELECTOR, 'iframe#login_frame'))
driver.find_element(By.LINK_TEXT, '帐号密码登录').click()
driver.find_element(By.XPATH, ".//*[@id='u']").clear()
driver.find_element(By.XPATH, ".//*[@id='u']").send_keys('981094301@qq.com')
driver.find_element(By.XPATH, ".//*[@id='p']").clear()
driver.find_element(By.XPATH, ".//*[@id='p']").send_keys('9(zndxcpvsWWXX')
driver.find_element(By.CSS_SELECTOR, 'input#login_button').click()
# 获取断言信息进行断言
text = driver.find_element(By.ID, 'useraddr').text
self.assertEqual(text, '981094301@qq.com')
# 退出
time.sleep(2)
driver.find_element(By.LINK_TEXT, '退出').click() def tearDown(self):
self.driver.quit()
self.assertEqual([],self.verificationErrors) if __name__ == '__main__':
unittest.main()
【备注】一定要在主函数里执行,我最开始右键的地方就是test_函数,然后控制台就报错说找不到元素。所以,在哪里右键,就单独执行哪里 #栗子
【selenium2】【unittest】的更多相关文章
- 【Selenium2】【项目实战】
[public/login.py] from selenium import webdriverfrom selenium.webdriver.common.by import Byimport ti ...
- 【selenium2】【selenium基础语法】
#栗子 设置浏览器窗口大小 driver.set_window_size(480,800) #栗子 设置浏览器大小为最大maximize_window() 控制浏览器前进.后退 #栗子from sel ...
- Python【unittest】模块
[unittest]模块是python3.5中的一个内置模块 1.python文件导入[unittest]模块 import unittest 2.定义一个测试用例类,继承[unittest.Test ...
- 【ATX学习大纲】【ATX基于uiautomator2+Python学习】之Android自动化
github学习地址:https://github.com/openatx/uiautomator2 <_io.TextIOWrapper name='<stderr>' mode= ...
- 【疯狂造轮子-iOS】JSON转Model系列之二
[疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...
- 【疯狂造轮子-iOS】JSON转Model系列之一
[疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...
- 【原创分享·支付宝支付】HBuilder打包APP调用支付宝客户端支付
前言 最近有点空余时间,所以,就研究了一下APP支付.前面很早就搞完APP的微信支付了,但是由于时间上和应用上的情况,支付宝一直没空去研究.然后等我空了的时候,发现支付宝居然升级了支付逻辑,虽然目前还 ...
- 【AutoMapper官方文档】DTO与Domin Model相互转换(上)
写在前面 AutoMapper目录: [AutoMapper官方文档]DTO与Domin Model相互转换(上) [AutoMapper官方文档]DTO与Domin Model相互转换(中) [Au ...
- 【Win 10 应用开发】应用预启动
所谓预启动,其实你一看那名字就知道是啥意思了,这是直接译,也找不到比这个叫法更简练的词了.在系统资源允许的情况下(比如电池电量充足,有足够的内存空间),系统会把用户常用的应用程序在后台启动,但不会显示 ...
- 【Win 10 应用开发】启动远程设备上的应用
这个功能必须在“红石-1”(build 14393)以上的系统版中才能使用,运行在一台设备上的应用,可以通过URI来启动另一台设备上的应用.激活远程应用需要以下前提: 系统必须是build 14393 ...
随机推荐
- 根据IP获取所在的国家城市
根据IP获取所在的国家城市 新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 新浪多地域测试方法:htt ...
- 阻塞队列---ArrayBlockingQueue,LinkedBlockingQueue,DelayQueue源码分析
阻塞队列和非阻塞队列阻塞队列和非阻塞队列的区别:阻塞队列可以自己阻塞,非阻塞队列不能自己阻塞,只能使用队列wait(),notify()进行队列消息传送.而阻塞队列当队列里面没有值时,会阻塞直到有值输 ...
- ASCII字符代码表
- mycat实现mysql数据库的垂直切分
在我们的工作中可能会遇到数据库的io瓶颈. 这个时候我们应该怎么办呢? 解决办法有很多,我们可以想到的为:数据库集群,主从复制,读写分离,数据库负载均衡,数据库的分库,分表.接下来我们写一下,数据库的 ...
- LNMP 添加 memcached服务
LNMP 添加 memcached服务 由于memcached具有更多的功能和服务,已经不推荐使用memcache了.(缺少个字母d) 1. 首先安装memcached服务端. 这里使用yum源安 ...
- [重要] Django 多条件多表查询实例问题
当时想做一个多条件查询,但是对于要查询的信息,是分布在不同的表里,这就涉及到了多表查询问题. DjangoBook里提到了一些查询的方式,但是不够全面,就去百度搜了下. 当去网上百度搜多表查询,或多条 ...
- php 查找字符串里面中文字符第一次出现的位置,并插入字符串
//查找字符串里面中文字符第一次出现的位置,并插入字符串 function find_first_chinese_insert($str,$insert_str){ $count = mb_strle ...
- Java线程安全容器
一.Java同步容器 同步容器是用来解决并发情况下的容器线程安全问题的.给多线程环境准备一个线程安全的容器对象. 线程安全的容器对象: Vector, Hashtable.线程安全容器对象,都是使用s ...
- SaaS的中年危机(转)
如果说SaaS软件和人有什么地方很像的话,中年危机一定是其中一个.另一个是交税. 经常有人问我,春阳,你觉得xx SaaS公司怎么样? 如果这是一家成立2年以上的公司,我的回答多半是“活的不是那么滋润 ...
- Android之RadioButton多行
RadioGroup设置orientation="vertical"竖向单列显示 RadioGroup设置orientation="horizontal"横向单 ...