https://d-cube.connpass.com/event/149831/ ã¹ã©ã¤ãä¸ãã¨ã³ã¸ãã¢ã®æè¤ãã¨ããè¬ã®äººç©ãåºã¦ãã¾ããããã¨ã³ã¸ãã¢ã®æ¡ç¨ãã®èª¤è¨ã§ãããã¾ããããè©«ã³ç³ãä¸ãã¾ãã
https://d-cube.connpass.com/event/149831/ ã¹ã©ã¤ãä¸ãã¨ã³ã¸ãã¢ã®æè¤ãã¨ããè¬ã®äººç©ãåºã¦ãã¾ããããã¨ã³ã¸ãã¢ã®æ¡ç¨ãã®èª¤è¨ã§ãããã¾ããããè©«ã³ç³ãä¸ãã¾ãã
ããã«ã¡ã¯ã ä¸ä¼.comã®éçºåºç¤ãæ å½ãã¦ãã¾ããakasakasã§ãã ä»åã¯ãE2Eãã¹ããSelenium WebdriverããCypress.ioã«ç§»è¡ãã話ããããã¨æãã¾ãã ä¸ä¼ã®E2Eãã¹ãäºæ ãããããæ°å¹´ãçµéãã¦ããã ã©ããã¦ãããªã£ãï¼ï¼ï¼ Seleniumã§ã¯SPAã¸ã®å¯¾å¿ãé£ãããªã£ã¦ãã ãªãã§ãããã§ãSeleniumã§é å¼µããã¨ããå¼å®³ ãããªãã¬ã¤ã¹ã¸ã»ãªãã¬ã¤ã¹ãããä¸ã§æ°ãã¤ããã㨠éçºè ãã¬ã³ããªã¼ å®å®æ§ ç¶ãã¹ãã¬ã¤ã¤ã¼ã§ãã¹ãããï¼ä½ã§ãããã§ããã©ã¦ã¶ãã¹ãã«ããªãï¼ æè¡é¸å® Cypress.io ã¨ã¯ï¼ Cypress.io ã®ããã¨ãã ã»ããã¢ããã楽 ãã¹ããæ¸ããã¨ã ãã«éä¸ã§ãã CIé£æºã楽 Cypress.io ã®é å¼µã£ã¦æ¬²ããã¨ãã ãã®ä»ã移è¡ã«é¢ãã¦ã®ç´°ãã話 éè¤ãã¹ãã±ã¼ã¹ã®æé¤ Page Objec
ãã®è¨äºã¯Selenium/Appium Advent Calendar 2018ã«åå ããè¨äºã§ãã æ°æ©è½ã®AWS Lambda Layersãçºè¡¨ããã¾ããã ããã¾ã§AWS Lambdaã®ã³ã¼ããã¡ã¤ã«ã50MBããããã ã¨ãæ©ã¾ãªãã¦ããããªãã¾ãããã³ã¼ããæ´æ°ãããã³ã«éããã¢ãããã¼ããããªãã¦ããããªãã¾ãã AWSãã¹ãã¬ã¼ã¸å®¹éãæ¸ãããã®ã§ã¯ãªãã§ããããã Lambdaã§Chrome Headlessãã©ã¤ãã使ã£ã¦ã¹ã¯ã¬ã¤ãã³ã°ããã¦ããã®ã§ãããã³ã¼ãã®zipãã¡ã¤ã«ã48MBã¨ããªã®ã§ãå¶éããããã§ãã ãã以ä¸ä½ããå¢ããã¨å¶éã«ã²ã£ãããã¾ãã ããã¦ããã¡ã¤ã«ã大ãããã¦ããã¸ã¡ã³ãã³ã³ã½ã¼ã«ããç´æ¥ã³ã¼ããç·¨éã§ãã¾ãããè¦ãã¾ããã ããã§ç»å ´ããAWS Lambda Layersã ããã¯ä½¿ããããªãã§ãããã¨ãããã¨ã§ã試ãã¦ã¿ã¾ããã éå»
Webæè¡ã®æ¨æºãçå®ããWorld Wide Web Consortiumï¼W3Cï¼ã®Browser Testing and Toolsã¯ã¼ãã³ã°ã°ã«ã¼ãã¯ããWebDriverãã6æ5æ¥ä»ãã§å§åã«å°éãããã¨ãçºè¡¨ãã¾ããã WebDriverã¯ãWebãã©ã¦ã¶ãå¤é¨ããæä½ãããã¨ãå¯è½ã«ããWebã¢ããªã±ã¼ã·ã§ã³ã®ãã¹ããªã©ã®èªååãå®ç¾ããæè¡ã§ãã 主è¦ãªWebãã©ã¦ã¶ã«ã¯ãã§ã«ãã®WebDriverã®æ©è½ãç¨æããã¦ãã¾ããSeleniumã«ä»£è¡¨ãããWebãã©ã¦ã¶èªååã©ã¤ãã©ãªãå©ç¨ãããã¨ã§ãWebDriverãç¨ãã¦Webã¢ããªã±ã¼ã·ã§ã³ã®UIãã¹ããªã©ãèªååãããã¨ãå¯è½ã§ãã SeleniumããW3C㸠ãã¨ãã¨Webãã©ã¦ã¶ã«ã¯å¤é¨ããæä½ãè¡ãAPIãªã©ã¯ãªããWebãã¼ã¸ãWebã¢ããªã±ã¼ã·ã§ã³ãWebãã©ã¦ã¶ã§è¡¨ç¤ºããéã«ç»é¢ãæ£å¸¸ã«è¡¨ç¤ºããã¦ãã
ããã«ã¡ã¯ã@nazomikanã§ãã ãã®è¨äºã¯LIFULL Advent Calender2017 ãã®2ã®3æ¥ç®ã®è¨äºã§ãã æ¨å¹´ã®Advent Calenderã§selenium-webdriver(node)ã®api翻訳è¨äºãæ¸ãã¾ãããããã®å½æ対象ã¨ãã¦ã2ç³»ããç¾å¨ã¯ã¡ã¸ã£ã¼ãã¼ã¸ã§ã³ã¢ãããæãã§è²ã ã¨ç¾ç¶ãå¤ãã£ã¦ãã¦ãã®ã§ãã®è¾ºã®è©±ããã¾ãã ãã¼ã«ã«ã¢ã¼ãã§ã®ãã¹ãæã«selenium standaloneãµã¼ããä¸è¦ã« v2.43ã®ãã§ã³ã¸ã»ããã§FireFoxã®ãã¤ãã£ããµãã¼ãã追å ããã¦ãremoteã§ã®å®è¡æãé¤ãã¦ãµãã¼ã対象ã®å ¨ã¦ã®ãã©ã¦ã¶ãstandaloneãµã¼ããªãã§å®è¡ã§ããããã«ãªãã¾ããã (chrome/phantomjsã®ãã¤ãã£ããµãã¼ãã¯2.34) â»ã®ã¡ã«phantomjsã¨operaã®ãµãã¼ãã¯åããã â»ãã®å½æãµãã¼ã対象ã§
illustration by iwasawa Selenium Gridã¨ã¯ Seleniumã«ã¯ãè¤æ°ã®ãã·ã³ã§åæ£ãã¦ãã©ã¦ã¶æä½ã®èªååãå®ç¾ããSelenium Gridã¨ããä»çµã¿ãããã¾ããSelenium Gridãå©ç¨ããã¨ãGoogle ChromeãFirefoxãMicrosoft Edgeçã®å¤ç¨®å¤æ§ãªãã©ã¦ã¶ãä¸æ¬ã§ç®¡çãããã¨ãã§ããä¸ã¤ã®ãã¹ãã¹ã¯ãªããããã¯ãã¹ãã©ã¦ã¶ãã¹ãã£ã³ã°ãè¡ããã¨ãã§ãã¾ãã Selenium Gridã¯ãããã¨ãã管çãµã¼ãã«ããã¹ãã«å¿ è¦ãªãã©ã¦ã¶ãæã¤ãã¼ããæ¥ç¶ããæ§æãã¨ãã¾ããããã«ããããã¹ãæ¡ä»¶ã«åããã¼ããèªåçã«é¸æãããå©ç¨ã§ããããã«ãªã£ã¦ãã¾ãã ããã«ã¯è¤æ°ã®ãã¼ããæ¥ç¶ã§ãã¾ãã®ã§ãCIç°å¢ã®ããã«ä¸¦åçã«ãã©ã¦ã¶ãåä½ãããå¿ è¦ãããç°å¢ã§ããå©ç¨ããã¦ãã¾ãã Selenium Grid Doc
CodeZineç·¨éé¨ã§ã¯ãç¾å ´ã§æ´»èºãããããããã¼ãã¹ã¿ã¼ã«ããããã®ã«ã³ãã¡ã¬ã³ã¹ãDevelopers Summitãããã¨ã³ã¸ãã¢ã®çããã¾ããã¼ã¹ãããããã®ã¤ãã³ããDevelopers Boostããªã©ããã¾ãã¾ãªã«ã³ãã¡ã¬ã³ã¹ãä¼ç»ã»éå¶ãã¦ãã¾ãã
8æã«ãªãªã¼ã¹ãããFirefox 55以éã§ã¯Selenium IDEãåä½ãããSeleniumãªãã£ã·ã£ã«ããã°ã§å ±åãä»å¾ã®æ¹åæ§ã¯ï¼ 8æ9æ¥ã«ãªãªã¼ã¹ãããFirefox 55ã§ã¯Selenium IDEãåä½ããªããªã£ã¦ãããã¨ãã8æ9æ¥ä»ãã®ãOfficial Selenium Blogãã«æ稿ãããè¨äºãFirefox 55 and Selenium IDEãã§å ±åããã¦ãã¾ãã Selenium IDEã¨ã¯ããã©ã¦ã¶èªååãã¼ã«Seleniumé¢é£ã®ã½ããã¦ã§ã¢ã®ã²ã¨ã¤ããã©ã¦ã¶ã®æä½ãã³ãã³ãã¨ãã¦è¨é²ãããã¨ãã§ããããããã¹ãã±ã¼ã¹ã¨ãã¦åå©ç¨ã§ããã¨ãããã¼ã«ã§ããWebã¢ããªã±ã¼ã·ã§ã³ã®ã¦ã¼ã¶ã¼ã¤ã³ã¿ã¼ãã§ã¤ã¹å¨ãã®ãã¹ããªã©ã§ä¾¿å©ã«ä½¿ããã¦ãã¾ããã Firefox 55ã§åä½ããªããªã£ãåå ã¯ãFirefoxã®æ¡å¼µæ©è½ã®ä»çµã¿ãå¾æ¥ã®ãXPIããããWe
illustration by iwasawa ããã¾ã§ã®Selenium ãã¦ãææ°äºæ ã«è§¦ããåã«ãæ¬è¨äºãã覧ã®çæ§ã¯æ¢ã«ãããåç¥ãã¨ã¯æãã¾ãããããããã¦Seleniumã¨ã¯ä½ããããã¦ç¾å¨ã®å½¢ã«è³ãã¾ã§ã®éããããããã¦ããã¾ãããã Seleniumã¯ãWebãã©ã¦ã¶ã®èªåæä½ã©ã¤ãã©ãªã§ãã人éãWebãã©ã¦ã¶ã§ãããããªæä½æ¥ããèªåçã«åç¾ã§ãã¾ããåç´ä½æ¥ã®èªååã«å©ç¨ã§ããã»ããä¸è¬çãªèªåãã¹ããã¬ã¼ã ã¯ã¼ã¯ã¨çµã¿åããããã¨ã§End to Endï¼E2Eï¼ãã¹ãã®èªååãå®ç¾ã§ãã¾ããWebã¢ããªã±ã¼ã·ã§ã³ã®ãã¹ãä½æ¥ã§è¦å´ããã¦ããæ¹ã«ã¨ã£ã¦ã¯ç¦é³ã®ãããªã©ã¤ãã©ãªã§ãããèªåãã¹ãã³ã¼ããå®è¡ç°å¢ã®ç¶æã»å®è¡æéãªã©ã大ãããã«ãªããã¡ã§ãå©ç¨ã³ã¹ãã¯é«ãã§ããå帰ãã¹ãã®èªååãªã©ãç¹°ãè¿ãå©ç¨ãå¤ãç¨éã¸ã®é©ç¨ãç¹ã«å¹æçã§ãããã Seleniumã®
ã¯ããã« é¢åãªWEBãã©ã¦ã¶ã®å®åä½æ¥ãèªååãããã¦ã WEBãã©ã¦ã¶ã®èªåæä½ã«ã¯å®çªã®Seleniumãå©ç¨ããã Seleniumã¯ä¸»ã«ã¦ã§ããã©ã¦ã¶ã®ãã¹ãã«å©ç¨ããã¦ãããããã¹ãç¨é以å¤ã§ãå©ç¨ã¯ã§ããã ãªãã¦ã§ãã¹ã¯ã¬ã¤ãã³ã°ãç®çã§ããã°ãscrapeã¨ãgoqueryãªã©ãå©ç¨ããã»ããç°¡åã ããã§ãSeleniumãå©ç¨ããã®ã¯ã å®éã®ãã©ã¦ã¶ãå©ç¨ã§ããã¨ããç¹ã§ããã以ä¸ã®ãããªå©ç¹ãããã¨æã£ã¦ããã IEãªã©ç¹å®ã®ãã©ã¦ã¶ã®ã¿ããµãã¼ããã¦ãããµã¤ãã®èªåæä½ ããããã®JavascriptãFlashãå©ç¨ããã¦ãããµã¤ãã®èªåæä½ è¨¼è·¡ã¨ãã¦ç»é¢ã®ã¹ã¯ãªã¼ã³ã·ã§ãããåå¾ã§ãã åæç¥è WebDriverãä»ãããã¨ã§ãã¹ã¯ãªããã¨ãã¦Java,C#,Pythonãªã©å¤ãã®è¨èªããå©ç¨ã§ãã ãã©ã¦ã¶ãã¨ã«WebDriverãç¨æããã¦ãããï¼ã¤
Appiumã®ä¸»ãªç¹å¾´ã¯ä»¥ä¸ã®éãã§ãã Android 2.3.3以éãiOS 6.0以éã«å¯¾å¿ãã¦ãã Webãã©ã¦ã¶ã¼ã使ã£ããã¹ãã®èªååã§åºãå©ç¨ããã¦ããSelenium WebDriverï¼ãSelenium 2ãã¨ãå¼ã°ãã¾ãï¼ã¨ãã»ã¼åãæ¸ãæ¹ã§ã¹ãã¼ããã©ã³ã¢ããªã®ãã¹ãã¹ã¯ãªãããæ¸ããã¨ãã§ãã RubyãPythonãJavaãã¯ããã¨ããããã¾ãã¾ãªããã°ã©ãã³ã°è¨èªã§ãã¹ãã¹ã¯ãªãããæ¸ããã¨ãã§ãã Webã¢ããªã®èªåãã¹ãã«Selenium WebDriverãå©ç¨ãã¦ãããã¹ãã¨ã³ã¸ãã¢ããå°ãªãå¦ç¿ã³ã¹ãã§ãAndroidãiOSã®ã¢ããªã®èªåãã¹ãã«ãçæã§ãããã¨ããç¹ãAppiumãæ¡ç¨ããã¡ãªããã¨ããã¾ãã Appiumã¯ããã¼ã¸ã§ã³1.0ãå¢ã«ããã¹ãã¹ã¯ãªããã®æ¸ãæ¹ï¼APIä»æ§ï¼ã大ããå¤æ´ããã¦ãã¾ãã ãã®ããããã¼ã¸ã§ã³1.0æªæº
éå»ã®ããã°è¨äºãããã®ã¼ã£ã¦ã¿ãã¨ãããç§ã¯ 2007 å¹´ãã Selenium ã® Web ãã¹ã ãã¬ã¼ã ã¯ã¼ã¯ã使ç¨ãã¦ãã¾ãã (è±èª)ãç¾å¨ã§ã¯ãMicrosoft Edge ãå«ãå種 Web ãã©ã¦ã¶ã¼åã (è±èª) ã® Selenium ãã©ã¤ãã¼ãæä¾ããã¦ãããRubyãPythonãJavaãC# ãªã©ãç¾å¨ä½¿ç¨ããã¦ããã»ã¼ãã¹ã¦ã®è¨èª (è±èª) 㧠Selenium ãã¹ããä½æãããã¨ãã§ãã¾ãã ç§ã¯ Selenium (è±èª) ãæç¨ãã¦ãããBrowserStack ãªã©ã®ã·ã¹ãã ã¨ä½µç¨ (è±èª) ãã¦ãå種 OS ã§ãã¾ãã¾ãªãã©ã¦ã¶ã¼ã®ãã¹ããèªååãã¦ãã¾ãã "Appium" 㯠Selenium 風ã®åªãããã¹ã ãã¬ã¼ã ã¯ã¼ã¯ã§ã以åã® JsonWireProtocol ã«ç¸å½ãã "WebDriver (è±èª)" ãããã³ã«ãå®è£ ããã¦ãã¾
CircleCIä¸ã§ãBrowserStackãå©ç¨ãããã«ããã©ã¦ã¶Javascript Test,Selenium Test ãå®ç¾ãã¦ããæ¹æ³ã«ã¤ãã¦ãç´¹ä»ãã¾ããSelenium webdriver, CircleCI, BrowserStack
æ¬æ¸ã¯Selenium WebDriverã使ã£ããã¹ãã®æ§ç¯æ¹æ³ããã¶ã¤ã³ãã¿ã¼ã³ãã¡ã³ããã³ã¹æ§ã«ç¦ç¹ãå½ã¦ãæ¸ç±ã§ããSeleniumã使ã£ã人ãªãããããã¹ãæã®åãå ¥ããã¹ãäºæãé¿ããã¹ãäºæããã¿ã¼ã³åãã¦ãããããã解説ãã¦ãã¾ãããã¹ãããªãã¡ã¯ã¿ãªã³ã°ããæ¹æ³ãèªåãã¹ãããã¸ã§ã¯ãã«ãããSpaghettiãã¿ã¼ã³ããã¹ããã¼ã¿ã«ã¤ãã¦ããã¹ããå®å®ãããã³ããããã«ãã¹ãã¹ã¤ã¼ããæé·ããããã³ããªã©ããã¹ãèªååè¨è¨ã«ããããã¤ã³ããå¹ åºãç´¹ä»ãã¾ãããã¹ããã©ã¯ãã£ã¹ã ãã§ãªããã¢ã³ããã¿ã¼ã³ãç´¹ä»ãã¦ããããã失æã®åå ãç¥ããé©åãªè¨è¨ãã¿ã¼ã³ãé©ç¨ãããã¨ãã§ããããã«ãªãã¾ãã ç®æ¬¡ ã¾ããã ç£è¨³è ã¾ããã ã¯ããã« 1ç« ãæåã®ãã¹ããæ¸ã 1.1ãSelenium ãé¸æãã 1.1.1ãé©æé©æ 1.1.2ãä¾¡æ ¼ 1.1.3ããªã¼ãã³ã½ã¼ã¹ 1.
Dockerã¯ITçéã§åºã¾ãã¤ã¤ãããªããªãå®è·µçã«ä½¿ããã¨ãã§ããªãã¨ãã人ã¯å¤ãã®ã§ã¯ãªããã¨ãã¨æãã¾ãããããä½ããµã¼ãéç¨ç°å¢ã¨ãã¦ä½¿ããã¨ãã使ãã©ããã¯ããã¾ãããã®ä¸ã¤ããµã¼ãã½ããã¦ã§ã¢ã®ã¤ã³ã¹ãã¼ã«ã§ãã ãµã¼ãã½ããã¦ã§ã¢ã¯ã¤ã³ã¹ãã¼ã«ã®æéã¨ããã®å¾ã®ãã¼ã¸ã§ã³ã¢ãããä»ã®ã½ããã¦ã§ã¢ã§ä½¿ã£ã¦ããå ±éã©ã¤ãã©ãªã®ã³ã³ããªã¯ããªã©ãã¨ããéç¨ãé¢åã§ããåºå¹¹ç³»ã·ã¹ãã ãå ¥ã£ã¦ãããµã¼ãã«ä»ã®ã½ããã¦ã§ã¢ãã¤ã³ã¹ãã¼ã«ããã®ã¯èºèºãã¾ãããã ãããã£ãã¨ãã«Dockerã使ãã°ããããã®ã½ããã¦ã§ã¢ã®ç°å¢ãåããããã®ã§ã»ãã¥ãªãã£ãéç¨çã«å®å¿ã§ãã¾ããä»åã¯ãã®ä¸ã¤ã¨ãã¦Docker SeleniumãDockerã使ã£ãSeleniumãµã¼ããç´¹ä»ãã¾ãã Docker Seleniumã®ã¤ã³ã¹ãã¼ã« ã¤ã³ã¹ãã¼ã«ã¯ã¨ã¦ãç°¡åã§ãããªãDockerã¯ã¤ã³ã¹ãã¼
æãç«ã£ãããã«Jenkinsç¹éããã¦ããã¾ãããä»åã¯Jenkinsã¨Selenium WebDriverã§UI層ã®ãã¹ãã®èªååããã話ã§ããSeleniumã¯é¢åèãç»é¢ã®ãã¹ããèªåå®è¡ãã¦ããããã¼ã«ã§ãåºã¦ãã¦ããããï¼ãï¼å¹´ããã¡ã¾ããWebç³»ã®éçºã«æºãã£ã¦ãã人ã§ããã°ãä¸åº¦ã¯è©¦ãããã¨ãããã®ã§ã¯ãªãã§ããããï¼ããã¦ãå¿ ãæ«æãããã¨ãããã¨æãã¾ãã ãã®çç±ã¨ãã¦ã¯ããã£ããä½ã£ãSeleniumã®ãã¹ãã±ã¼ã¹ãè ã£ã¦ããããã§ããä¸è¬çã«ã¯UI層ã®å¤æ´ã¯ããã¸ãã¯å±¤ã«æ¯ã¹ã¦å¤åãæ¿ããã§ããã ãããããã¹ãèªååãã¦ä¿è¨¼ãããã¨ã«æå³ãããã®ã§ããããã®ãã¹ãã±ã¼ã¹ãç¶æããã®ã¯å¤§å¤ã§ããããã§ãJenkinsã®ç»å ´ã§ããJenkinsã§ãµã¼ããµã¤ãã§ç¶ç¶çã«å®è¡ãããã¨ã«ãããSeleniumã®ãã¹ãã±ã¼ã¹ãæåãä¿ã¦ãããã«ãã¾ããã¾ããè¤æ°ã®ãã©ã¦ã¶ã»ã
æ¬ã·ãªã¼ãºã¯ãWebãã©ã¦ã¶ãUIã¨ãã¦å©ç¨ããæ¥åã·ã¹ãã ãã¢ããªã±ã¼ã·ã§ã³ï¼ä»¥ä¸ãWebã·ã¹ãã ãWebã¢ããªã±ã¼ã·ã§ã³ï¼ã®ãã¹ãããã¼ãã¨ãã¦ãWebãã©ã¦ã¶ã使ã£ããã¹ããèªååããOSSã®ãã¼ã«ãSelenium2ããç´¹ä»ãã¾ããæ¥åã·ã¹ãã éçºã®ç¾å ´ã§é©ç¨ãã¦ãããã¦ãã¦ãå ã«ãããã¾ã§Selenium2ã«ã¤ãã¦ç¥ããªãã£ã人ãã以å使ã£ãçµé¨ããã人ã¾ã§ãããå®è·µçãªã使ãããå 容ãçãè¾¼ãã§ããããã¨æãã¾ãã æ¬ã·ãªã¼ãºã®ã¹ã³ã¼ãã¨å¯¾è±¡èªè æ¬ã·ãªã¼ãºã¯Webã·ã¹ãã ã»Webã¢ããªã±ã¼ã·ã§ã³ã®ãã¹ãã®ä¸ã§ããWebãã©ã¦ã¶ãæä½ãã¦å®æ½ãããã¹ãããã¹ã³ã¼ãã«ãã¦ãã¾ããéçºå·¥ç¨ã¨ãã¦ã¯ã1ã¢ã¸ã¥ã¼ã«ã¨ãã¦åä½ãã¹ãã«ä½ç½®ä»ããããå ´åãããã°ãè¤æ°ã®ã¢ã¸ã¥ã¼ã«ãã·ã¹ãã ã¨é£æºãã¦çµåãã¹ããç·åãã¹ãã«ä½ç½®ä»ããããå ´åãããã§ãããããããã®ãã¹ãã®ãã¨ããæ¬ã·ãªã¼ãº
ãname=your-nameããcss=input.buttonãã®ãããªãæä½å¯¾è±¡ã®ç»é¢è¦ç´ ãç¹å®ããããã®è¨è¿°(ããã±ã¼ã¿ã¼ãã¨å¼ã³ã¾ãâ»1 )ããä½ç®æã«ãåæ£ãã¦ãã¾ãã ãUIãããã³ã°ãã¨ã¯ããã®åæ£ãããã±ã¼ã¿ã¼ããUIããããã¡ã¤ã«ã¨ãã1ã¤ã®ãã¡ã¤ã«ã§éä¸ç®¡çããææ³ã§ãã(å³2) ãã±ã¼ã¿ã¼ã«ãinputNameããbuttonSearchããªã©ã®ããããããå¥åãã¤ãããã¹ãã¹ã¯ãªããä¸ã§ã¯ãã±ã¼ã¿ã¼ã§ãªããã®å¥åã使ç¨ãã¾ãã UIãããã³ã°ãè¡ãã¨æ¬¡ã®ãããªã¡ãªãããããã¾ãã ç»é¢ã®HTMLãå¤ãã£ãå ´åã«ãUIããããã¡ã¤ã«ä¸ã®ãã±ã¼ã¿ã¼ã ããæ¸ãæããã°ããã®ã§ãã¡ã³ããã³ã¹ã®æéã大ãã軽æ¸ããã¾ãã ããããããå¥åã使ç¨ãããã¨ã§ãã¹ãã¹ã¯ãªãããèªã¿ããããªãã¾ãã ã¡ãªã¿ã«ãUIãããã³ã°ãããã«æ´ç·´ããããã¼ã¸ãªãã¸ã§ã¯ããã¶ã¤ã³ãã¿ã¼ã³ã¨ãã
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}