測試隨筆-超好用的 Selenium 內建 Action Class

用 Action Class 解決了很多問題:

    • 問題:在 contenteditable = true 中使用 SendKeys 會有錯誤訊息:Cannot focus web element to send keys 。
      不需要用 JavaScript 的方式來處理,簡單很多。
      網路上蒐到使用 JavaScript 的解法比較多,但可以用 Action 簡單處理完成。
 原始 html 碼
<ul data-id=”xxx” contenteditable=”ture”>
<li data-id=”yyy:”>
<li data-id=”xxx:”>
 driver.FindElement(By.XPath(“locator”)).SendKeys(“xxx”);
→ 會有錯誤訊息:Cannot focus web element to send keys
 IWebElement visibleInput = driver.FindElement(By.XPath(locator));
IJavaScriptExecutor executor = (IJavaScriptExecutor)driver;
executor.ExecuteScript(“arguments[0].click();”, visibleInput);
driver.FindElement(By.XPath(locator)).SendKeys(“xxx”);
→ 目前遇到是無法把字輸入成功的。
 IWebElement element = driver.FindElement(By.XPath(locator));
Actions action = new Actions(driver);
action.MoveToElement(element).Click().Perform();
action.MoveToElement(element).SendKeys(“xxx”).Perform();
→ 可以運作成功, 有 innerHTML 的也可以用 Action 簡單處理。
  • 問題:沒有 DoubleClick 可以選時Action 也支援 Mouse、Keyboard 事件。
 driver.FindElement(By.XPath(locator).Click();
這裡沒有 doubleClick method 可以選。
 action.MoveToElement(element).DoubleClick().Perform();
承上所述,直接使用 DoubleClick() method
  • 問題:IE11 的這種錯誤【error: Cannot click on element (WARNING: The server did not provide any stacktrace information) 】(相同腳本 Chrome 是可以跑的),
    改用 Action 簡單處理。(舉例同第一項)
  • 要引用 using OpenQA.Selenium.Interactions;

參考:

從【一例一休】續談測試案例設計

前一篇文章中我們體會到了SA(System Analyst 或BA(Business Analyst)如何利用”舉例說明”來和使用者釐清需求。說起來容易,但是怎麼開始下手,又是另一回事了。為了讓讀者更進一步體會在開發階段中如何利用這些案例來設計測試案例,以下仍然用一例一休的例子做為說明:

繼續閱讀 “從【一例一休】續談測試案例設計”

從【一例一休】牽拖Specification By Example

勞動部在105年12月通過一例一休,除了調整休假日與特休天數外,期望透過「工資成本以價制量」、「工時安排總量管制」方式,進一步落實週休二日之目標。法案通過後勞方資方似乎都不太買帳,但這不是今天要牽拖的重點,今天是以公司MIS和HR的角色來看如何將冷冰冰的法條透過Specification By Example轉換成可執行的系統。

繼續閱讀 “從【一例一休】牽拖Specification By Example”

從【一例一休】牽拖以0.5小時為最小請假單位的作法

勞動部在105年12月通過一例一休之後,開始了國內各公司HR與MIS不眠不休的制度與系統調整。以勞基法的規定,滿週年後才給假,且給假天數都是整數,所以不會有依比例的問題。但由於之前公司是採用曆年制,為配合勞基法未來修法方向,明年也將調整為週年制,在制度轉換的過渡期則是以105/12/31計算員工在公司的整數年年資,以勞基法新級距所對照出來的休假天數,再依到職週年日佔全年日期的比例計算。不過,公司的給假的規定是一天8小時,休假最小單位是0.5小時,所以計算出來的休假時數還要再判斷:未滿0.5小時以0.5小時計,超過0.5小時未滿1小時以1小時計。

今天要來牽拖的就是這最後一個規則:未滿0.5小時以0.5小時計,超過0.5小時未滿1小時以1小時計

繼續閱讀 “從【一例一休】牽拖以0.5小時為最小請假單位的作法”