WatiN-Html元素的操作

  自動化測試,何為自動化測試,簡單點說就是機器代替人工操作,那么WatiN實現Web應用在瀏覽器上的自動化就需要模擬人工點擊、輸入、選擇、拖放等等操作,在這些操作中會觸Html元素的onclick、onchange、onmousemove等事件。在WatiN中提供了FireEvent和FireEventNoWait。下面舉一些常見的元素操作例子。

  1、文本框輸入

  有人說,不就是文本框輸入嗎,可簡單,直接設置元素Value屬性就可以了。是的,如果只是輸入的動作,那么就這么簡單,但是在實際測試中,文本框的onchange、onblur、onfocus等事件就需要考慮了。

實例:

Html

 1 <html>
 2 <head>
 3     <meta charset="utf-8">
 4     <title>WatiN測試頁面</title>
 5 </head>
 6 <body>
 7     <div>
 8         <input type="text" id="txtName" onblur="alert('失去焦點')" />
 9     </div>
10 </body>
11 </html> 

C#

1 IE ie = IE.InternetExplorers().FirstOrDefault(p => !string.IsNullOrEmpty(p.Title) && p.Title == "WatiN測試頁面");
2 
3 TextField name = ie.TextField(Find.ById("txtName"));
4 name.Focus();
5 name.Value = "張三";
6 
7 name.FireEvent("onblur");

?  2、選擇框

Html

<html>
<head><meta charset="utf-8"><title>WatiN測試頁面</title>
</head>
<body><div><select id="selState"><option>--請選擇--</option><option>待出庫</option><option>已發貨</option><option>配送中</option><option>已簽收</option></select></div>
</body>
</html> 
1 IE ie = IE.InternetExplorers().FirstOrDefault(p => !string.IsNullOrEmpty(p.Title) && p.Title == "WatiN測試頁面");
2 
3 SelectList stateList = ie.SelectList(Find.ById("selState"));
4 stateList.SelectByValue("已發貨");

?

轉載于:https://www.cnblogs.com/xiaoqiangcode/p/6431435.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456372.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456372.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456372.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

azkaban的操作指南

前言&#xff1a; 最近在實際工作中玩到了Azkaban&#xff0c;雖然之前有簡單的接觸&#xff0c;但是真正用到的時候&#xff0c;才能體會到這個工具的實用性有多強&#xff0c;總結下真個操作過程。在總結整個操作過程之前先簡單描述下工作流調度系統的優勢。 1、工作流調度…

創建對象方法之增

# 1. 創建模型對象 user User() # 2. 給對象賦值 user.username username user.password pwd user.phone phone # 3. 向數據庫提交數據 db.session.add(user) db.sessio…

ActiveMq使用筆記

java JMS技術 .1. 什么是JMS JMS即Java消息服務&#xff08;Java Message Service&#xff09;應用程序接口是一個Java平臺中關于面向消息中間件&#xff08;MOM&#xff09;的API&#xff0c;用于在兩個應用程序之間&#xff0c;或分布式系統中發送消息&#xff0c;進行異步…

導入Anaconda中的第三方庫運行時報錯:ImportError: Missing required dependencies ['pandas']

今天碰到一個大坑&#xff0c;花了大半天才搞明白問題出在哪來。事情的經過是這樣的&#xff1a;博主下午手賤把已將裝好anaconda2給卸載了&#xff08;同時裝了2和3&#xff09;&#xff0c;然后再次安裝anconda2后&#xff0c;卻發現配置完pycharm的解釋器后&#xff0c;代碼…

BZOJ2005 NOI2010 能量采集 歐拉函數

題意&#xff1a;求$\sum\limits_{i 1}^N {\sum\limits_{j 1}^M {f(i,j)} } $&#xff0c;其中f(i,j)(0,0)與(i,j)連線上點的數量 題解&#xff1a; 如果一個點(x,y)在(0,0)與(x,y)的連線上&#xff0c;則有gcd(x,y)gcd(x,y)。因此f(i,j)(gcd(i,j)gcd(i,j))且i<i,j<j的…

通過__tablename__ = 'xxx' #定義表名

from datetime import datetimefrom exts import dbclass User(db.Model):__tablename__ user1 #定義表名id db.Column(db.Integer,primary_keyTrue,autoincrementTrue)username db.Column(db.String(10), nullableTrue)password db.Column(db.String(256), nullableTrue)p…

python子類繼承父類特性,pycharm上面已經提示繼承了,為什么會報沒有該特性的錯誤?

因為在子類里覆蓋了父類的__init__ 如果需要調用父類用super class A(object):def __init__(self):self.a 1def fun(self):print self.aclass B(A):def __init__(self):self.b 2super(B, self).__init__()def fun(self):print self.aprint self.bB().fun()

Hadoop偽分布安裝詳解(一)

注&#xff1a;以下截圖針對Ubuntu操作系統&#xff0c;對Centos步驟類似。請讀者選擇不同鏡像即可。 第一部分&#xff1a;VMware WorkStation10 安裝 1.安裝好VMware10虛擬機軟件并下載好Ubuntu16.04 LTS 64位版的鏡像包 2.打開VMware10虛擬機軟件&#xff0c;選擇“創建新的…

C++_const常成員作用

介紹 常成員是什么 1.常成員關鍵詞為&#xff1a;const 2.常成員有&#xff1a;常成員變量、常成員函數、常成員對象 常成員有什么用 1.常成員變量&#xff1a;用于在程序中定義不可修改內部成員變量的函數 2.常成員函數&#xff1a;只能夠訪問成員變量&#xff0c;不可以修改成…

Python開發中收集的一些常用功能Demo

文章目錄目錄&#xff1a;前言&#xff1a;1、Python判斷文件是否存在的幾種方法&#xff1a;1.1、使用os模塊1.2、使用Try語句&#xff08;比較嚴謹的寫法&#xff09;1.3、使用pathlib模塊2、Python中寫入List到文本中并換行的方法3、Python按行讀取文件的幾種簡單實現方法3.…

Unlicensed ARC session – terminating!

問題描述 近日&#xff0c;發現ArcGIS10.4中存在很多bug&#xff0c;而且費了好多時間去測試它&#xff0c;最終決定改用10.1。在降級程序時遇到許可問題。 重裝ArcGIS10.1后&#xff0c;打開工程&#xff0c;所有引用都自動映射&#xff0c;沒報任何錯誤&#xff0c;清理重新生…

SQLAlchemy - Column詳解

SQLAlchemy - Column詳解 Column常用參數&#xff1a; default&#xff1a;默認值 nullable&#xff1a;是否可有 primary_key&#xff1a;是否為主鍵 unique&#xff1a;是否唯一 autoincrement&#xff1a;是否自動增長 onupdate&#xff1a;更新的時候執行的函數 name&…

Linux命令三劍客:grep、sed、awk總結

文章目錄前言一、grep命令語法實例grep結合pattern正則二、sed命令語法案例三、awk命令語法實例前言 最近看到了幾篇關于linux命令grep、sed、awk的文章&#xff0c;這里總結下&#xff0c;方便后面使用。 一、grep grep命令&#xff08;grep的全稱&#xff1a;Global searc…

python 機器學習資料

!(7 Steps to Mastering Machine Learning With Python) [http://www.kdnuggets.com/2015/11/seven-steps-machine-learning-python.html] 轉載于:https://www.cnblogs.com/zk47/p/6448506.html

Flask-SQLAlchemy 中如何不區分大小寫查詢?

例如下面的 User 模型&#xff0c;在數據庫中查詢時并不會區分大小寫 class User(db.Model):__tablename__ usersid db.Column(db.Integer, primary_keyTrue)username db.Column(db.String(64), uniqueTrue, indexTrue)password_hash db.Column(db.String(128)) 這時&…

Git常用指令及功能總結

文章目錄前言&#xff1a;1、常用的git指令2、常用git功能及操作2.1、下載代碼&#xff1a;2.2、當前分支和master保持一致2.3、修改代碼后提交代碼到指定分支2.4、版本回退&#xff08;時空穿梭機&#xff09;2.5、概念工作區和暫存區2.6、添加遠程庫2.7、分支管理2.8、標簽管…

MacOS下MySQL配置

先去官網下載一個 MySQL for mac http://www.cnblogs.com/xiaobo-Linux/ 命令行運行終端&#xff0c;運行下面兩條命令&#xff1a; 12alias mysql/usr/local/mysql/bin/mysqlalias mysqladmin/usr/local/mysql/bin/mysqladmin方便終端直接輸入mysql命令&#xff0c;而不是必須…

HashMap為什么在多線程下會讓cpu100%

首先HashMap并不是sun公司多線程提供的集合&#xff0c;很多時候我們的程序是一個主線程&#xff0c;用了hashmap并沒有什么問題&#xff0c;但是在多線程下會出現問題。 hashmap是一個哈希表&#xff0c;存儲的數據結構也可以是一個線性數組&#xff0c;我們的存儲的數據都在e…

flask中關于endpoint端點、url_map映射、view_func視圖函數,view_functions、及視圖函數名是否何以相同的問題?

視圖函數中關于url_map視圖的映射&#xff1a;應該是[ url->methonds->endpoint ] 而整個請求的過程&#xff0c;是先通過url地址映射到端點endpoint&#xff0c;然后通過endpoint找到試圖函數view_func&#xff08;擴展:在Flask類里邊有一個view_funtions的屬性&…

SparkSQL-從0到1認識Catalyst

文章目錄前言正文預備知識&#xff0d;Tree&RuleCatalyst工作流程ParserAnalyzerOptimizerSparkSQL執行計劃前言 這篇文章是轉載一位大神的文章&#xff0c;為什么要轉載的&#xff0c;實在是因為寫的太經典了&#xff0c;所以忍不住希望能有更多的人可以看到。后續還會轉…