Slide 1

Slide 1 text

4FMFOJEFΛ࢖ͬͯΈͨ ʙϒϥ΢βςετࣗಈԽʙ ++6($$$4QSJOH DDD@N

Slide 2

Slide 2 text

ࣗݾ঺հ ໊લɿTOPXIJSP ॴଐɿࡳຈͷͱ͋Δ4*FSۈ຿ ීஈͷۀ຿಺༰ ɹ+BWBΛར༻ͨ͠8ΞϓϦͷ։ൃ ɹ ஫ҙɿࠓ೔ൃද͢Δ಺༰͸ݸਓͷҙݟͰ͢ɻ

Slide 3

Slide 3 text

໨࣍ w TFMFOJEFΛ஌͖͔͚ͬͨͬ w ࢖ͬͯΈͨײ૝ w ϖʔδΦϒδΣΫτ w ֬ೝํ๏ w ·ͱΊ

Slide 4

Slide 4 text

TFMFOJEFΛ࢖͍࢝Ί͖͔͚ͨͬ ++6($$$GBMMʹͯ ʰ4FMFOJEFΛࢼߦࡨޡ͠ͳ͕Β࣮ફ͢Δϒϥ΢βࣗ ಈςετʱ Λݟͯศརͦ͏ʂͬͯ͜ͱͰૣ଎࢖ͬͯݟ·ͨ͠ɻ ࢀߟࢿྉɿ IUUQCBDLQBQFSHJUIVCJPHIPTUTUSZ TFMFOJEF

Slide 5

Slide 5 text

αϯϓϧΛ࣮ࢪ @Test public void yahooͷݕࡧ() { Selenide.open("https://www.yahoo.co.jp/"); $("#srchtxt").setValue("selenide"); $("#srchbtn").click(); $(".resultNum").shouldHave(text("໿1,150,000݅")); } ᶃର৅ͷ63-Λࢦఆͯ͠ϒϥ΢βΛىಈ ᶄࢦఆϑΟʔϧυ΁஋Λઃఆ͢Δɻ ᶅཁૉΛΫϦοΫ ᶆϖʔδભҠޙͷཁૉͷத਎ΛνΣοΫ

Slide 6

Slide 6 text

γϯϓϧͰ࢖͍΍͍͢

Slide 7

Slide 7 text

ͨͩ͠

Slide 8

Slide 8 text

Կ΋ߟ͑ͣ ໧ʑͱཁૉΛࢦఆͯ͠ॻ͘ͱ ίϐϖ͕େྔੜ࢈͞ΕΔ

Slide 9

Slide 9 text

!5FTU QVCMJDWPJEZBIPP@TFMFOJEFΛݕࡧ \ 4FMFOJEFPQFO IUUQTXXXZBIPPDPKQ lTSDIUYU TFU7BMVF TFMFOJEF TSDICUO DMJDL SFTVMU/VN TIPVME)BWF UFYU ໿ ݅ ^ !5FTU QVCMJDWPJEZBIPP@TFMFOJVNΛݕࡧ \ 4FMFOJEFPQFO IUUQTXXXZBIPPDPKQ lTSDIUYU TFU7BMVF TFMFOJVN TSDICUO DMJDL SFTVMU/VN TIPVME)BWF UFYU ໿ ݅ ^ ཁૉͷࢦఆ͸มΘΒͳ͍ ೖྗ஋౳ͷΈ͕มΘΔͷΈ

Slide 10

Slide 10 text

ϝϯςφϯεͷࣄΛߟ͑Δͱ ͜ͷঢ়ଶ͸ਏ͍

Slide 11

Slide 11 text

ͦ͜Ͱ

Slide 12

Slide 12 text

ϖʔδΦϒδΣΫτύλʔϯ

Slide 13

Slide 13 text

ϖʔδΦϒδΣΫτύλʔϯ ͱ͸ʁ

Slide 14

Slide 14 text

ը໘ʹؔ͢Δ৘ใ͸Ӆ͠·͠ΐ͏ ͬͯײ͡Ͱ͔͢Ͷɻ

Slide 15

Slide 15 text

IUUQTHJUIVCDPN4FMFOJVN)2TFMFOJVNXJLJ 1BHF0CKFDUT ৄ͘͠஌Γ͍ͨํ͸ݪจΛͲ͏ͧ

Slide 16

Slide 16 text

public class SrchPage { @FindBy(id = “srchtxt") private SelenideElement srchTxt; public void setSrchTxt(String text) { this.srchTxt.setValue(text); } @FindBy(id = "srchbtn") public SelenideElement srchBtn; public ResultPage clickSrchBtn() { ɹ srchBtn.click(); return page(ResultPage.class); } } ϖʔδΦϒδΣΫτΛར༻ͨ͠৔߹ ϖʔδΦϒδΣΫτͷ࡞੒ ৚݅ೖྗଆʣ ᶃ!'JOE#Zʹͯର৅ͷཁૉΛϑΟʔϧυʹ ࢦఆ͢Δɻ ᶄ஋ͷऔಘɾઃఆ͸ΞΫηοαʔΛܦ༝͠ɺ 4FMFOJEF&MFNFOUͷཁૉ͸Ӆṭ͢Δɻ ᶅ࣍ͷϖʔδ΁ભҠ͢Δ৔߹ʹ͸࣍ͷϖʔδ ΦϒδΣΫτͷΠϯελϯεΛฦ٫͢Δ

Slide 17

Slide 17 text

public class ResultPage { @FindBy(className ="resultNum") private SelenideElement resultNum; public String getResultNum() { return resultNum.should(exist).getText(); } } ᶃ஋ͷऔಘ͸ΞΫηοαʔΛܦ༝͠ɺ 4FMFOJEF&MFNFOUͷཁૉ͸Ӆṭ͢Δɻ ϖʔδΦϒδΣΫτΛར༻ͨ͠৔߹ ϖʔδΦϒδΣΫτͷ࡞੒ ݁Ռը໘ଆʣ

Slide 18

Slide 18 text

@Test public void yahooͷݕࡧ_ϖʔδΦϒδΣΫτ() { SrchPage srchPage = Selenide.open(“https://www.yahoo.co.jp/“ , SrchPage.class); srchPage.setSrchTxt("selenide"); ResultPage resultPage = srchPage.clickSrchBtn(); assertThat(resultPage.getResultNum()) .isEqualTo("໿1,150,000݅"); } ϖʔδΦϒδΣΫτΛར༻ͨ͠৔߹ ςετέʔεΛهड़ PQFOҎ֎ͷTFMFOJEFͷϝιουΛӅṭ͍ͯ͠·͢ɻ ೖྗϑΟʔϧυ౳ʹมߋ͕ೖͬͯ΋มߋର৅͸ϖʔδ ΦϒδΣΫτͷΫϥεͷΈͰςετέʔεʹ͸Өڹ͕ ग़ͳ͍Α͏ʹͳΓ·͢ɻ

Slide 19

Slide 19 text

ϖʔδΦϒδΣΫτΛར༻͢Δͱ มߋʹڧ͍ Ͱ΋ ϖʔδΦϒδΣΫτ࡞੒͢Δͷ͸ ΊΜͲ͍͘͞

Slide 20

Slide 20 text

ָʹ࡞੒Ͱ͖ͳ͍͔ ߟ͑ͯΈͨ

Slide 21

Slide 21 text

αʔόଆͷGPSNΫϥε͔Βͷੜ੒ ɹαʔόଆʹͯ࡞੒͢Δ'PSNΫϥεΛݩʹ࡞ ੒͢Δ͜ͱ͕Ͱ͖ͳ͍͔Λݕ౼ͯ͠Έͨɻ Ϙλϯ౳ͷ৘ใ͕औಘͰ͖ͳ͍ͨΊஅ೦

Slide 22

Slide 22 text

ϖʔδ΁௚઀ΞΫηεͯ͠ཁૉऔಘ FMFDUSPOͷXFCWJFXΛར༻ͯ͠ ϖʔδཁૉΛ௚઀ΞΫηεͯ͠औಘ ཉ͍͠৘ใ͕औಘͰ͖Δ ࠾༻

Slide 23

Slide 23 text

֓ཁ w FMFDUSPOͷXFCWJFXΛར༻͢Δɻ w ϖʔδͷFMFNFOUΛऔಘͯ͠ϖʔδΦϒ δΣΫτͷϑΟʔϧυͱͯ͠ग़ྗ ɾཁૉͷ໊લ͸JEPSOBNFΛར༻͢Δɻ ɹ

Slide 24

Slide 24 text

ϔομʔ෦෼౳ʹ͋ΔΑ͏ͳ ϝχϡʔͳͲͷڞ௨తͳཁૉʹ͍ͭͯ ͲͷΑ͏ʹ࣮૷͢Δ͔ ਌Ϋϥεʹ࣮૷ͯ͠ܧঝͯ͠ར༻͢Δʁ ը໘୯ҐͰͷࡉ͔͍࣮૷͕Ͱ͖ͳ͍ɻ ϖʔδΦϒδΣΫτϝϞɹͦͷ̍

Slide 25

Slide 25 text

ϖʔδΦϒδΣΫτϝϞɹͦͷ̍ +BWBͳΒ ʮEFGBVMUNFIUPEʯΛར༻ͯ͠ ΠϯλʔϑΣʔεΛJNQMFNFOUT ͢Δ͜ͱͰඞཁ࠷௿ݶʹରԠ͢Δ͜ͱ ͕Ͱ͖·͢ɻ

Slide 26

Slide 26 text

public interface Menu { default void logout() { Selenide.$("#logout-link").click(); } } public class MainPage implements Menu { @Test public void ϝΠϯॲཧ() { // ϩάΞ΢τ logout(); } } ͪΐͬͱϝϞɹͦͷ̍ σϑΥϧτϝιου ػೳΛར༻

Slide 27

Slide 27 text

Ҏ্ͰϖʔδΦϒδΣΫτ ʹ͍ͭͯ͸͓͠·͍ɻ

Slide 28

Slide 28 text

࣍͸֬ೝ࡞ۀ

Slide 29

Slide 29 text

TFMFOJEF͸ TIPVMEͱ$POEJUJPOͷϝιουΛ ૊Έ߹ΘͤΔ͜ͱͰ֬ೝ͕༰қߦ͑·͢ɻ

Slide 30

Slide 30 text

6*ࢼݧͷ໨త͸ ໌֬Ͱ͔͢ʁ

Slide 31

Slide 31 text

6*ςετ͸ w ը໘ΩϟϓνϟΛ֬ೝ w ը໘߲໨ͷ஋Λ֬ೝ w ը໘ભҠͷಈ࡞Λ֬ೝ ʜ౳ʑ ৭ʑͳ֬ೝํ๏͕͋Δɻ

Slide 32

Slide 32 text

৭ʑͳ؍఺Ͱ֬ೝͰ͖Δͷ͕ཧ૝

Slide 33

Slide 33 text

ݱ࣮͸ʜ શͯΛ໢ཏ͢Δͷ͸೉͍͠

Slide 34

Slide 34 text

ը໘ભҠ͕Ͱ͖Ε͹ ޙ͔Βॏཁͳը໘΍ػೳ͚ͩ ϐοΫΞοϓ͢Ε͹͍͍ ͱ͍͏ํ਑͠·ͨ͠

Slide 35

Slide 35 text

ͱ͍͏͜ͱͰ ը໘ભҠΛத৺ʹ֬ೝΛ࣮ࢪ

Slide 36

Slide 36 text

w ॳظදࣔͷ৔߹ w λΠτϧΛ֬ೝ w ը໘ΩϟϓνϟΛऔಘ w ը໘಺Ͱͷཁૉมߋͷ৔߹ w ΩʔͱͳΔཁૉ͚ͩ͸֬ೝ w ը໘ΩϟϓνϟΛऔಘ ֬ೝ؍఺

Slide 37

Slide 37 text

ը૾Ωϟϓνϟ͸ׂΓ੾ͬͯ ໨ࢹ֬ೝ

Slide 38

Slide 38 text

ͦͷ୅ΘΓ ෇Ճ৘ใΛςΩετʹͯग़ྗ ग़ྗ͞ΕͨςΩετͱը໘ΩϟϓνϟΛ ΤϏσϯεܗࣜՃ޻ͯ͠ ݟ΍͘͢͠·ͨ͠

Slide 39

Slide 39 text

ը໘ΩϟϓνϟϝϞ TFMFOJEFͰ͸ ʮ4FMFOJEFTDSFFOTIPUʯ ͰεΫϦϯγϣοτΛऔಘͰ͖·͢ɻ Ͱ͕͢ ϒϥ΢βʹΑͬͯը໘ औಘൣғ͕ҟͳΓ·͢ TFMFOJVNͷ໰୊

Slide 40

Slide 40 text

w B4IPU IUUQTHJUIVCDPNZBOEFYRBUPPMTBTIPU w 1JUBMJVN IUUQTHJUIVCDPNIJpWFIJpWFQJUBMJVN ରԠ͢ΔͨΊͷϥΠϒϥϦ͕͍͔ͭ͘ Ͱ͍ͯ·͢ͷͰར༻Λݕ౼ͯ͠ΈΔͱ͍ ͍͔΋͠Ε·ͤΜɻ ը໘ΩϟϓνϟϝϞ

Slide 41

Slide 41 text

͸·ͬͨ͜ͱ

Slide 42

Slide 42 text

ࡢ೔·Ͱಈ͍͍ͯͨςετ͕ ىಈ͠ͳ͘ͳͬͨ DISPNF͕ߋ৽͞Ε͍ͯͯ XFCEJSWFSͱόʔδϣϯ͕ Ұக͠ͳ͘ͳ͍ͬͯͨɻ

Slide 43

Slide 43 text

·ͱΊ

Slide 44

Slide 44 text

ϖʔδΦϒδΣΫτ ࠷ॳ͸େมͰ΋ ؤுͬͯ࡞Δͱྑ͍͔ͳͱ ࢥ͍·͢ɻ

Slide 45

Slide 45 text

֬ೝʹ͍ͭͯ͸໨తΛ໌֬ ͔ͯ͠ΒܭըΛͨ͠ํ͕ྑ͍ ͔ͳͱࢥ͍·͢ɻ

Slide 46

Slide 46 text

গͮͭ͠ಋೖ͢Δ͜ͱ͕Ͱ͖ΔͷͰ ҰาҰาਐΊΔͷ͕ྑ͍͔ͱࢥ͍·͢ɻ

Slide 47

Slide 47 text

Ҏ্Ͱ͢ɻ

Slide 48

Slide 48 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ N @@ N