[Selenium With C#基礎(chǔ)教程] Lesson-05 文本框

文本框在Web頁面中,通澄『模可以允許用戶輸入一些文本并發(fā)送到服務(wù)器拍柒。通常有兩種表現(xiàn)形式:密碼文本普通文本令哟,在密碼文本中輸入文本通常是經(jīng)常特殊處理的恼琼,常見的是將用戶輸入的文本用或** * **顯示,在普通文本中也允許輸入單選或多行的文字屏富。如下圖所示:

5-1 文本框示例_c2i.jpg

HTML源碼如下:

  用戶名: <input type="text" name="username" id="userID"> <br /><br />
  密 碼: <input type="password" name="password" id="passID"> <br /><br />
  注釋: <br />
  <textarea id="commentsID" rows="3" cols="50" name="comments"></textarea>

通過Name定位輸入文本

通過使用name屬性來識(shí)別定位文本框晴竞,是開發(fā)經(jīng)常使用的一種方法。示例如下:

driver.FindElement(By.Name("username")).SendKeys("username");

通過Id定位輸入文本

通過使用Web元素的Id來識(shí)別定位文本框狠半,應(yīng)該是測(cè)試過程最簡(jiǎn)單和最快的方法了噩死,示例如下:

driver.FindElement(By.Id("userID")).SendKeys("username");

向密碼文本輸入文本

在Selenium中,密碼文本框的處理其實(shí)與普通文本框是一樣的神年,只是密碼文本框中輸入的字符是經(jīng)過處理以特殊字符展現(xiàn)而已已维。示例代碼如下:

driver.FindElement(By.Id("passID")).SendKeys("password");

清空輸入的文本

對(duì)同一個(gè)文本框而言,在使用SendKeys()方法時(shí)瘤袖,有時(shí)候會(huì)將舊的文本和新輸入的文本合并在一起衣摩,從而導(dǎo)致測(cè)試失敗昂验。因此在需要輸入文本的地方捂敌,我們可以先調(diào)用Clear()方法清空文本,再輸入新的文本值既琴。

 driver.FindElement(By.Id("userID")).SendKeys("username");
 driver.FindElement(By.Id("userID")).SendKeys(" test");

以上的示例最終輸入的文本值變會(huì)變成** username test**占婉,而正確的方法如下所示:

 river.FindElement(By.Id("userID")).Clear();
 driver.FindElement(By.Id("userID")).SendKeys("username");

對(duì)于密碼框也建議采取同樣的方法,避免輸入文本被合并而導(dǎo)致測(cè)試失敗甫恩。

在文本框中輸入多行文本

在Selenium中逆济,處理多行文本框中普通文本框一樣,示例如下:

driver.FindElement(By.Id("commentsID")).SendKeys("comments \r\n Test Multiline Text");

其中 \r\n 代表換行磺箕,開始新的一行奖慌。最終效果圖如下:

5-2 多選文本示例_c2i.jpg

斷言文本的值

在測(cè)試過程中,我們有時(shí)候需要獲取到用戶輸入的文本信息松靡,來驗(yàn)證是否與預(yù)期保持一致简僧,這時(shí)候我們使用斷言** Assert**來實(shí)現(xiàn),示例代碼如下:

IWebElement textValue = driver.FindElement(By.Id("userID"));
textValue.SendKeys("testTextValue");
Console.WriteLine(textValue.GetAttribute("value"));
Assert.AreEqual<string>("testTextValue", textValue.GetAttribute("value"));

最終的結(jié)果如下圖所示:

5-3 斷言文本值_c2i.jpg

給元素設(shè)置焦點(diǎn)

在做自動(dòng)化的過程中雕欺,有時(shí)候需要給元素設(shè)置焦點(diǎn)岛马。而在Selenium中沒有專門設(shè)置焦點(diǎn)的方法棉姐,但變通一下,我們可能通過發(fā)送一個(gè)空的按鈕響應(yīng)來解決該問題啦逆。

driver.FindElement(By.Id("commentsID")).SendKeys("");

當(dāng)然伞矩,也可以采用JavaScript來解決該問題,示例代碼如下:

IWebElement elements = driver.FindElement(By.Id("commentsID"));
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].focus();", elements);

改變只讀或禁用狀態(tài)文本框的值

只讀屬性的文本框在瀏覽器中是不可編輯的夏志,而禁用狀態(tài)的文本框通常是以灰色顯示的乃坤。如下圖所示:

5-4 只讀和禁用狀態(tài)文本框_c2i.jpg

HTML源碼如下所示:

<!--只讀狀態(tài)的文本框-->
只讀狀態(tài)文本框:<input type="text" name="readOnlyText" id="readOnlyId" readonly="true" value="只讀狀態(tài)"/>
<br /><br />
<!--禁用狀態(tài)的文本框-->
禁用狀態(tài)文本框:<input type="text" name="disableText" id="disableTextId" disabled="true" value="禁用狀態(tài)" />

如果文本框被設(shè)置只讀屬性,如果繼續(xù)按照以下方法進(jìn)行輸入盲镶,則會(huì)報(bào)錯(cuò)侥袜。

driver.FindElement(By.Id("readOnlyId")).SendKeys("Read Only Test");

報(bào)錯(cuò)信息如下:

5-5 只讀狀態(tài)報(bào)錯(cuò)_c2i.jpg

注意:這段代碼在IE中會(huì)報(bào)錯(cuò),而在Chrome中卻不會(huì)報(bào)錯(cuò)

在一些地方用常規(guī)方法不能解決時(shí)溉贿,我們可以嘗試采用JavaScript來解決此類問題枫吧,示例代碼如下所示:

((IJavaScriptExecutor)driver).ExecuteScript("document.getElementById('readOnlyId').value='改變只讀文本的值'"); 
((IJavaScriptExecutor)driver).ExecuteScript("document.getElementById('disableTextId').value='改變禁用文本的值'");

最終實(shí)現(xiàn)的效果如下:

5-6 改變值_c2i.jpg

文本框在日常測(cè)試過程也是比較常見的幾種類型之一,結(jié)合以上各種方法宇色,相信能夠在自動(dòng)化測(cè)試中從容應(yīng)對(duì)九杂。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市宣蠕,隨后出現(xiàn)的幾起案子例隆,更是在濱河造成了極大的恐慌,老刑警劉巖抢蚀,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件镀层,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡皿曲,警方通過查閱死者的電腦和手機(jī)唱逢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屋休,“玉大人坞古,你說我怎么就攤上這事〗僬粒” “怎么了痪枫?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)叠艳。 經(jīng)常有香客問我奶陈,道長(zhǎng),這世上最難降的妖魔是什么附较? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任吃粒,我火速辦了婚禮,結(jié)果婚禮上翅睛,老公的妹妹穿的比我還像新娘声搁。我一直安慰自己黑竞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布疏旨。 她就那樣靜靜地躺著很魂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪檐涝。 梳的紋絲不亂的頭發(fā)上遏匆,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天,我揣著相機(jī)與錄音谁榜,去河邊找鬼幅聘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛窃植,可吹牛的內(nèi)容都是我干的帝蒿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼巷怜,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼葛超!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起延塑,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤绣张,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后关带,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體侥涵,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年宋雏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了芜飘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡好芭,死狀恐怖燃箭,靈堂內(nèi)的尸體忽然破棺而出冲呢,到底是詐尸還是另有隱情舍败,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布敬拓,位于F島的核電站邻薯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏乘凸。R本人自食惡果不足惜厕诡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望营勤。 院中可真熱鬧灵嫌,春花似錦壹罚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至绪穆,卻和暖如春辨泳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背玖院。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工菠红, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人难菌。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓试溯,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親郊酒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子耍共,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)猎塞,斷路器试读,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,070評(píng)論 25 707
  • 隨著Web技術(shù)的不斷演進(jìn),HTML5 應(yīng)運(yùn)而生荠耽。HTML5包含很多新的功能和動(dòng)態(tài)Web應(yīng)用和接口钩骇。而且隨著Java...
    Surpassme閱讀 1,282評(píng)論 0 2
  • 加班結(jié)束,外面雨下的好大铝量。在房子里待了整整一星期倘屹,事實(shí)證明回家讓我坐辦公室我也不做![378]
    capfswj閱讀 193評(píng)論 0 2
  • ?這個(gè)玩具你家一定可以有慢叨,笑笑玩了很久纽匙,夏天也正好是玩水的好季節(jié),既好玩又可以學(xué)到知識(shí)哦拍谐。 材料: 礦泉水瓶烛缔,吸管...
    媽咪私塾閱讀 780評(píng)論 0 3