Selenium-web自動化實踐復選框

在做客服審批平臺的自動化時遇到要這樣一個業(yè)務場景:

A.客服人員對進件處理开睡,可操作選項是“通過”、“退件”苟耻、“拒絕”

B.客服人員需要對“退件”篇恒、“拒絕”選擇做詳細原因選擇(可多選)

C.客服人員勾選審批意見后,點擊“提交”按鈕凶杖,完成進件審批操作

根據(jù)以上整理出簡單的思路

1胁艰、點定位到“通過”、“退件”官卡、“拒絕”按鈕

2蝗茁、點擊“通過”、“退件”寻咒、“拒絕”按鈕

3哮翘、勾選“退件”、“拒絕”的詳細原因

4毛秘、點擊“提交”按鈕

根據(jù)思路整理出代碼如下:

首先需要解決第一步和第二步饭寺,先找到按鈕的定位,我是將定位表達式寫到properties里叫挟,以下是三個按鈕的定位方法:

Yffin_PendinfoPage.passbtu=xpath>//span/input[@value='102']

Yffin_PendinfoPage.returnbtu=xpath>//span/input[@value='104']

Yffin_PendinfoPage.rejectbtu=xpath>//span/input[@value='109']

以下是代碼:


//通過

public void clickPassBtu() {

try {

driver.findElement(new GetObjectMapProperties().getLocator("Yffin_PendinfoPage.passbtu")).click();//找到通過按鈕艰匙,并點擊通過按鈕

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

//退件

public void clickReturnBtu() {

try {

driver.findElement(new GetObjectMapProperties().getLocator("Yffin_PendinfoPage.returnbtu")).click();//找到退件按鈕并點擊

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

//拒絕

public void clickRejectBtu() {

try {

driver.findElement(new GetObjectMapProperties().getLocator("Yffin_PendinfoPage.rejectbtu")).click();;//找到拒絕按鈕并點擊

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

然后解決第三步,根絕實際場景抹恳,客服人員在選擇在“退件”或“拒絕”詳細原因時只勾選詳細原因并不會一成不變的员凝。因此,可以設計成勾選隨機個隨機的原因奋献。這樣更貼切業(yè)務場景健霹。

以退件為例旺上,上圖的紅色框內(nèi)是客服人員隨機勾選的退件原因。那么需要先定位到所有的退件原因糖埋,根據(jù)下圖的HTML可以寫Xpath表達式定位得出:

Yffin_PendinfoPage.returninreasons=xpath>//div[@id='subReturnCheckboxDiv']/div[@id='tjInnerReasons']//input

因此代碼如下:


//勾選退件原因   

public void checkReturnReasons() throws Exception { 

  ListfindElements = driver.findElements(new GetObjectMapProperties().getLocator("Yffin_PendinfoPage.returninreasons"));

int max = findElements.size();

System.out.println(max);

int nextInt = new Random().nextInt(max);

System.out.println(nextInt);

for (int i = 0; i < nextInt; i++) {

System.out.println(i);

findElements.get( new Random().nextInt(max)).click();

}

}

  通過調(diào)試發(fā)現(xiàn)以上代碼可以實現(xiàn)隨機選擇退件原因宣吱,但是在多次調(diào)試后發(fā)現(xiàn)一個問題,打印出的nextInt與頁面上勾選的不一致瞳别,nextInt大于頁面勾選的復選框的數(shù)量征候。猜測出現(xiàn)這個狀況的原因有兩點:一是,在執(zhí)行過程中確實沒有勾選復選框祟敛;二是疤坝,在執(zhí)行時某一復選框被執(zhí)行兩次。通過審查代碼得出執(zhí)行for循環(huán)時可能產(chǎn)生的隨機數(shù)與之前一致垒棋,那再次點擊復選框就會是取消勾選卒煞。找到問題的原因后痪宰,可以再for循環(huán)內(nèi)加一個判斷:如果復選框已經(jīng)被勾選了叼架,就重新確定復選框。修改后的代碼如下:

//勾選退件原因  

public void checkReturnReasons() throws Exception {  

ListfindElements = driver.findElements(new GetObjectMapProperties().getLocator("Yffin_PendinfoPage.returninreasons"));

int max = findElements.size();

int nextInt = new Random().nextInt(max);

System.out.println(nextInt);

for (int i = 0; i < nextInt; i++) {

int j = new Random().nextInt(max);

while(findElements.get(j).isSelected()){

int m=new Random().nextInt(max);

j=m;

}

findElements.get(j).click();

}

}

   以上思路是將所有的退件原因看成一個整體衣撬,但是這樣并沒有貼近真實業(yè)務乖订。真實業(yè)務步驟是:

1、先判斷進件的主處理具练,根據(jù)不同的規(guī)則判斷選擇主按鈕是什么乍构?

1.1、如果是通過扛点,則可以直接提交審核結果

1.2哥遮、如果是退件或拒絕,需要判斷次要處理陵究。比如:進件信息內(nèi)的公司名稱是不合法眠饮,主處理是“退件”,則次要處理需要勾選單位名稱下的“有誤”復選框

這樣就需要做的判斷和定位比較多铜邮,考慮到投入與產(chǎn)出和時間原因仪召,最終的UI自動化的要求只需要做個復選框的隨機勾選就可以了。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末松蒜,一起剝皮案震驚了整個濱河市扔茅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌秸苗,老刑警劉巖召娜,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異惊楼,居然都是意外死亡玖瘸,警方通過查閱死者的電腦和手機吐句,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來店读,“玉大人嗦枢,你說我怎么就攤上這事⊥投希” “怎么了文虏?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長殖演。 經(jīng)常有香客問我氧秘,道長,這世上最難降的妖魔是什么趴久? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任丸相,我火速辦了婚禮,結果婚禮上彼棍,老公的妹妹穿的比我還像新娘灭忠。我一直安慰自己,他們只是感情好座硕,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布弛作。 她就那樣靜靜地躺著,像睡著了一般华匾。 火紅的嫁衣襯著肌膚如雪映琳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天蜘拉,我揣著相機與錄音萨西,去河邊找鬼。 笑死旭旭,一個胖子當著我的面吹牛谎脯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播您机,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼穿肄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了际看?” 一聲冷哼從身側響起咸产,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎仲闽,沒想到半個月后脑溢,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年屑彻,在試婚紗的時候發(fā)現(xiàn)自己被綠了验庙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡社牲,死狀恐怖粪薛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情搏恤,我是刑警寧澤违寿,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站熟空,受9級特大地震影響藤巢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜息罗,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一掂咒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧迈喉,春花似錦绍刮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捌木。三九已至油坝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刨裆,已是汗流浹背澈圈。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留帆啃,地道東北人瞬女。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像努潘,于是被迫代替她去往敵國和親诽偷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

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