当前位置: 首页 > 编程日记 > 正文

Selenium(3)

练习1:Ecshop
  录制登录后退出业务
  打开系统
  存储页面的标题
    a.点击"登录"按钮
    b.输入用户名:testing
      存储输入的用户名
    c.输入密码:123456
    d.点击"立即登录"按钮
      存储登录成功的提示信息
      存储登录成功后页面显示的用户名
    e.选择"手机类型"选项

f.点击"退出"按钮

TC3001_Ecshop_复习.html

TS3_ECshop.html

一、常用的命令
  1、Accessor命令,存储类的命令
    (1)可以在录制时添加:
      a.在被测系统中元素上右键
      b.选择Show All Available Commands选项
      c.选择需要使用的命令(storeTitle、storeValue、storeText)
      d.在弹出的变量名称框中输入变量名
      注意:录制时如果加入了storeTitle存储,录制后要修改storeTitle代码,只有一个参数,参数是变量名

2、断言Assertion命令分类:
    (1)assertXXX:一旦验证失败,脚本停止运行,一般用于重要的检查点
    (2)verifyXXX:一旦验证失败,会继续运行脚本,会在Log日志中记录失败的结果,一般用于次要的检查点
    (3)waitForXXX:用于等待指定的条件变为真,如果到达超时时间,还未等待到预期结果,会记录失败,停止运行


  3、常用的Assertion命令
    (1)assertTitle(预期值):断言当前网页的标题是否等于预期值
      练习2:Echsop
        验证登录后退出页面的Title是否与打开时页面Title一致
          a.打开后存储页面Title t1
          b.退出后验证Title是否与t1一致
      TC3003_Ecshop_assertTitle.html

(2)assertText(locator,预期值):断言指定页面元素的文本是否等于预期值,一般针对纯文本或者链接的页面元素

练习3:在第3个用例中添加断言
        a.验证点击"登录"按钮前,"登录"按钮前显示的是否为"欢迎光临本店"
        b.再验证点击"退出"按钮后,"退出"按钮后面是否显示"查看购物车"

(3)assertValue(locator,预期值):断言指定页面元素的值是否等于预期值,一般针对文本框、单选按钮、复选框(on/off)
      练习4:check
      TC3004_check_assertValue.html

TS3_check.html

练习5:Ecshop
        录制在分类下拉框中选择"手机类型",输入关键字"9",点击"搜索"按钮
          a.搜索后,断言搜索结果统计个数是否为"13"
          b.搜索后,断言搜索输入框中的值是否显示"9"
          c.断言"搜索"按钮是否显示"搜索"文本两个字
          d.点击第一个商品后,断言默认的购买数量是否为"1",断言颜色"黑色"是否为选中,断言"蓝牙耳机"是否未选中

TC3005_Ecshop_assert.html

(4)assertElementPresent(locator):断言指定页面元素是否出现
      assert:断言
      Element:元素
      Present:出现

(5)assertAlert(预期值):断言是否弹出提示信息框,并且信息提示框中的内容是否等于预期值
      TC3006_Ecshop_assertAlert.html

注意:在录制过程中,提示信息框上点击"确认"时,会在代码中录制生成assertAlert命令,并且获取到被测系统的提示信息作为预期值
    (6)assertSelectedIndex(locator,预期编号):断言指定下拉框是否选中指定编号的选项,编号从0开始
      练习6:Echsop
        录制选择分类(手机类型),输入关键字进行搜索
          a.在搜索后,断言类型下拉框是否显示"手机类型"
      TC3006_Ecshop_assertSelectedIndex.html

练习7:Echsop(assertAlert)
        a.点击"登录"按钮
        b.不输入任何信息,点击"立即登陆"按钮
        c.验证提示信息是否正确
        d.输入用户名,不输入密码,,点击"立即登陆"按钮
        e.验证提示信息是否正确
      TC3007_Ecshop_assertAlert.html

(7)Selenium IDE使用时注意事项:
      a.IDE对空格和换行符处理不好
      b.录制前和回放前都需要打开被测系统
      c.IDE只支持Firefox,不支持其他浏览器
      d.不建议把不同系统的Case放到一个套件中
      e.打开脚本时建议先打开套件,再打开Case

二、WebDriver
  1、环境搭建
    (1)准备Java环境(jdk、环境变量、Myeclipse)
    (2)从selenium官网下载driver,放到指定的目录解压
    (3)启动Myeclipse
      Path=
        C:\Program Files\Java\jdk1.6.0_25\bin;
        C:\Program Files\Java\jdk1.6.0_25\jre\bin;
    (4)创建工程:
      1) Flie->New->Java Project
      2) 输入项目名称:seleniumProject
      3) 点击 Next
      4) 选择Libraries,点击Add External JARS按钮
      5) 选择selenium-java-2.33.0.jar
      6) 再次点击Add External JARS按钮,选择Libs,Ctrl+A选择所有的jar,添加到项目中

<tr>

<td>open</td>

<td>file:///D:/Selenium/day01/example/message.html</td>

<td></td>

</tr>

<tr>
  <td>type</td>
  <td>name=name</td>
  <td>selenium</td>
</tr>

<tr>
  <td>type</td>
  <td>name=e-mail</td>
  <td>selenium@tedu.cn</td>
</tr>
<tr>
  <td>type</td>
  <td>name=comments</td>
  <td>Hello,selenium</td>
</tr>
<tr>
  <td>clickAndWait</td>
  <td>css=input[type=&quot;submit&quot;]</td>
  <td></td>
</tr>

driver.get(baseUrl + "file:///D:/Selenium/day01/example/message.html");
driver.findElement(By.name("name")).clear();
driver.findElement(By.name("name")).sendKeys("selenium");
driver.findElement(By.name("e-mail")).clear();
driver.findElement(By.name("e-mail")).sendKeys("selenium@tedu.cn");
driver.findElement(By.name("comments")).clear();
driver.findElement(By.name("comments")).sendKeys("Hello,selenium");
driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

转载于:https://www.cnblogs.com/KalosOwen/p/8977000.html

相关文章:

php 爬虫_Rad爬虫结合W13Scan扫描器挖掘漏洞

一、背景这几天一直在研究W13Scan漏洞扫描器&#xff0c;因为对Python不是太熟悉&#xff0c;所以进度有点慢&#xff0c;一直没看懂怎么将代理请求的数据转发到扫描队列中去&#xff0c;决定先熟悉熟悉这个功能再说&#xff1b;Rad爬虫最近比较火&#xff0c;于是就是就选择它…

Python 爬取网页HTML代码

#/usr/bin/env python #-*- coding:utf-8 -*-import urllib2 import sys import chardetreq urllib2.Request("http://tycool.top/") content urllib2.urlopen(req).read() typeEncode sys.getfilesystemencoding()##系统默认编码 infoencode chardet.detect(con…

区块链兼容以太坊智能合约

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 引言 随着区块链技术以及应用的普及&#xff0c;越来越多的区块链出现在大众视野中。由于区块链技术的开源特性&#xff0c;任何公司和个人都可以…

Linux常用命令--网终设置

1、把自己&#xff08;sa&#xff09;添加到sudoers配置文件中&#xff0c;以便于获取权限 vim /etc/sudoers 编辑文件&#xff08;部分centOS版本没有vim命令&#xff0c;则用vi即可&#xff09; 找到【root ALL(ALL) ALL】语句&#xff0c;在下面添加&#xff1a; sa ALL…

python示例异常处理与程序调试_笔记:Python异常处理与程序调试

Python异常处理与程序调试Python提供了强大的异常处理机制&#xff0c;通过捕获异常可以提高程序的健壮性。异常处理还具有释放对象&#xff0c;中止循环的运行等作用。在程序运行的过程中&#xff0c;如果发生了错误&#xff0c;可以返回事先约定的一个错误代码。"try...…

js传入参数为字符串问题

示例&#xff1a; var device_mac"11qweq234ert";//第一种方式会报错&#xff1a;Onclick SyntaxError: identifier starts immediately after numeric literal&#xff0c;数字后面紧跟着字符这种写法只有device_mac是数字的时候是正确的。传入的为字符串则应该使用…

区块链热度背后的资本市场

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 进入2018年之后大家对于加密数字货币以及区块链等话题都各自有各自的意见和想法&#xff0c;很多人觉得区块链技术和加密数字货币是泡沫&#xff…

袋鼠过河(动态规划)

题目描述 一只袋鼠要从河这边跳到河对岸&#xff0c;河很宽&#xff0c;但是河中间打了很多桩子&#xff0c;每隔一米就有一个&#xff0c;每个桩子上都有一个弹簧&#xff0c;袋鼠跳到弹簧上就可以跳的更远。每个弹簧力量不同&#xff0c;用一个数字代表它的力量&#xff0c;如…

jenkins-svn配置

转载于:https://www.cnblogs.com/caer/p/5924337.html

python查看所有异常_如何获取python异常发生的实际行号?

如果你想按你描述的那样做from functools import wrapsimport sys, os, tracebackdef catch_exceptions(function):wraps(function)def decorator(*args, **kwargs):try:return function(*args, **kwargs)except Exception as e:exc_type, exc_obj, exc_tb sys.exc_info()prin…

区块链从一夜暴富到一夜暴“负”的辛酸史

3.15打假日&#xff0c;打假虽然年年有&#xff0c;但与往年有别的是&#xff0c;今年区块连技术得到了诸多重视以及初步发展&#xff0c;一些带有诈骗性质的数字资产交易所在用血腥的方式不断收割着更低层级的用户&#xff0c;而这些平台的受害者&#xff0c;却往往得不到任何…

iOS消息转发

消息转发是一种功能强大的技术&#xff0c;可以大大增加Objective-C的表现力。什么是消息转发&#xff1f;简而言之&#xff0c;它允许未知的消息被困住并作出反应。换句话说&#xff0c;无论何时发送未知消息&#xff0c;它​​都会以一个很好的包发送到您的代码中&#xff0c…

python参数类型限定_python限定方法参数类型、返回值类型、变量类型等|python3教程|python入门|python教程...

https://www.xin3721.com/eschool/python.htmltyping模块的作用自python3.5开始&#xff0c;PEP484为python引入了类型注解(type hints)类型检查&#xff0c;防止运行时出现参数和返回值类型、变量类型不符合。作为开发文档附加说明&#xff0c;方便使用者调用时传入和返回参数…

CentOS VMware 配置IP小结 静态 配置 桥接 NAT

系统启动后可先ping下外网或局域网内其它机器。如果配置虚拟机时选择的NAT上网方式&#xff0c;后面需要配置固定IP&#xff0c;请先参见VMware NAT方式下设置静态IP获得可用的IP范围和网关等信息。先将ifcfg-eth0备份到home目录下&#xff0c;不要放在与它同一目录下&#xff…

区块链简史:解读这场技术革命的前世今生

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 真格基金徐小平的一个“内部讲话”被泄露&#xff0c;揭开了创投圈对区块链的新一轮热衷。 在这份微信群的“内部讲话”中&#xff0c;徐小平把区块…

IncDec Sequence(codevs 2098)

题目描述 Description 给定一个长度为n的数列{a1,a2...an}&#xff0c;每次可以选择一个区间[l,r]&#xff0c;使这个区间内的数都加一或者都减一。  问至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列有多少种。 输入描述 Input…

C++ 中set

set特点&#xff1a; 所有元素不会重复&#xff0c;重复插入已经有的新值无效&#xff1b;所有元素按顺序排列&#xff1b;unordered_set除外键和值相同&#xff0c;所以set中的值是不可更改的set的各成员函数列表如下: 1.begin()--返回指向第一个元素的迭代器 // 如果当前容器…

python自动排课表_【python-leetcode210-拓扑排序】课程表Ⅱ

现在你总共有 n 门课需要选&#xff0c;记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如&#xff0c;想要学习课程 0 &#xff0c;你需要先完成课程 1 &#xff0c;我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件&#xff0c;返回你为了学完所有课…

简单粗暴告诉你什么是区块链

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链是什么&#xff1f;它是如何工作的&#xff1f; 比特币已经成为现代互联网的潮流 - 随之而来的是区块链。人们说区块链技术将导致互联网运作…

【Codeforces】Round #375 (Div. 2)

Position:http://codeforces.com/contest/723 我的情况 啊哈哈&#xff0c;这次raiting肯定要涨&#xff0c;接受过上次的教训&#xff0c;先用小号送肉&#xff0c;大号都是一发切&#xff0c;重回蓝咯 结果。。。 FST&#xff01;&#xff01; 不&#xff0c;这次是skip&…

python的matplotlib背景线_python中matplotlib的颜色及线条 控制

https://www.cnblogs.com/darkknightzh/p/6117528.htmlhttps://blog.csdn.net/qq_34337272/article/details/795555441.设置栅格(1)使用pyplot api命令打开栅格:plt.grid(true)设置栅格格式&#xff1a;plt.grid(colorr, linestyle--, linewidth1,alpha0.3)(2)使用axes类面向对…

系统权限设计思路

权限系统通常包括如下基本元素&#xff1a;用户、角色、权限、资源、操作。 角色分类&#xff1a;总经理、部长、员工。&#xff08;在实际中一个用户可能存在多个角色&#xff0c;这就要考虑到权限累加处理&#xff09; 权限分类&#xff1a;如”员工考勤权限”、”审核权限”…

“区块链”究竟是什么

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 什么是区块链&#xff1f; 说到区块链&#xff0c;就不得不说比特币。 2008年底&#xff0c;比特币之父中本聪发表了一个关于他研究的电子现金…

leetcode 179. 最大数

给定一组非负整数&#xff0c;重新排列它们的顺序使之组成一个最大的整数。 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说明: 输出结果可能非常大&#xff0c;所以你需要返回一个字符串而不是整数。 自己写了很久的比较函数&#xff0c;时钟有…

cf-Sasha and Array

题目链接 http://codeforces.com/problemset/problem/719/E 解题思路 矩阵上的线段树。 因为矩阵有分配律&#xff08;AB&#xff09;C AC BC&#xff0c;所以计算总和时直接把增量矩阵乘上去就行了。用矩阵快速幂。 fib的计算尽量拉到主函数计算。 代码 #include<stdio.h…

实对称矩阵的性质_浅谈矩阵的相似对角化(一)

森屿瑾年&#xff1a;浅谈线性变换和矩阵之间的关系​zhuanlan.zhihu.com通过前面的讨论&#xff0c;我们引出了线性变换在不同基下的矩阵之间的关系&#xff0c;知道了线性变换在不同基下的矩阵是相似的&#xff0c;进而我们可以通过选取不同的基&#xff0c;使得线性变换在这…

区块链技术未来可能用于哪些方面?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 当世界上从100比特币购买25美分的比萨饼&#xff0c;到一比特币兑换4800人民币的天价&#xff0c;在这风起云涌的纪念&#xff0c;我们见证了一个…

tomcat启动

tomcat的启动一般是从startup.bat/startup.sh开始&#xff0c;然后启动catalina.bat/catalina.sh&#xff0c;然后启动bootstrap.jar包 那么它们启动的时候都做了哪些事情呢&#xff1f; 首先是startup.bat&#xff0c;startup.bat做了什么&#xff1f; 第二是catalina.bat&…

ERROR: from PIL import Image ImportError: No module named PIL

ERROR&#xff1a; from PIL import Image ImportError: No module named PIL 到 http://www.pythonware.com/products/pil/ 下载相关支持的版本 我的是python2.7 直接打开&#xff0c;然后一路按“下一步”&#xff0c;就行 转载于:https://www.cnblogs.com/jakejian/p/8992…

python中font_Python ColorFont包_程序模块 - PyPI - Python中文网

控制台打印彩色字体0 黑色 8 灰色1 蓝色 9 淡蓝色2 绿色 A 淡绿色3 浅绿色 B 淡浅绿色4 红色 C 淡红色5 紫色 D 淡紫色6 黄色 E 淡黄色7 白色 F 亮白色格式&#xff1a;0x12高位代表背景色&#xff0c;低位代表字体颜色0x10 | 0x020x10代表背景色&#xff0c;0…