Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
さいきんのGebしってますか? #jggug
Search
PoohSunny
May 13, 2016
Technology
0
240
さいきんのGebしってますか? #jggug
#jggug でのLTです。
https://jggug.doorkeeper.jp/events/43554
PoohSunny
May 13, 2016
Tweet
Share
More Decks by PoohSunny
See All by PoohSunny
ドレイファスモデルの紹介 / introduce Dreyfus model
poohsunny
1
980
Make Work Visible in Agile2018 #LINE_DM
poohsunny
1
380
タウンワークをドライブさせるためになんちゃってアジャイルをやめた話 #devsumi #devsumiB / devsumi2018
poohsunny
30
45k
1 test 1 assert ?
poohsunny
0
360
XUTPから学ぶ記述性の高いユニットテスト 〜俺たちを助けるユニットテストへ〜 / xUTP in #xpjug
poohsunny
4
5.1k
XCUITestする時のTIPs 〜あなたを助けるXCUITestへ〜
poohsunny
0
3k
コードに思いが伝わる
poohsunny
0
230
横浜タネマキでGebと握手! #yokohamagroovy
poohsunny
0
380
The "yummy" licenses.
poohsunny
0
160
Other Decks in Technology
See All in Technology
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.8k
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
6
620
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
590
Why does continuous profiling matter to developers? #appdevelopercon
salaboy
0
190
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
180
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
120
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
500
スクラム成熟度セルフチェックツールを作って得た学びとその活用法
coincheck_recruit
1
140
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
300
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Optimizing for Happiness
mojombo
376
70k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Being A Developer After 40
akosma
86
590k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
The World Runs on Bad Software
bkeepers
PRO
65
11k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Embracing the Ebb and Flow
colly
84
4.5k
Transcript
͍͖͞ΜͷGeb ͬͯ͠·͔͢ʁ @PoohSunny 2016/05/13 #jggug
͝ແࠫଡͯ͠·͢
@PoohSunny work: [ "WebΤϯδχΞ", "Gebͷਖ਼͍͠ಡΈํΛ͑Δ" ] community: [ "TDDBC", "Agile
Samurai Base Camp", "ຊSeleniumϢʔβʔίϛϡχςΟ" ]
ΑΖ͘͠ ͓Ͷ͕͍͠·͢
None
ϒϥβΦʔτϝʔγϣϯπʔϧ ݱࡏͷ࠷৽όʔδϣϯ0.13.1
؆ܿͳهड़ import geb.Browser Browser.drive { go "http://myapp.com/login" assert $("h1").text() ==
"Please Login" $("form.login").with { username = "admin" password = "password" login().click() } assert $("h1").text() == "Admin Section" }
Gebͱ͍͑
2011 -> 2016 0.9.0 -> 0.13.1
࠷ۙͷGebͷ Ξοϓσʔτ
None
ϩΰ͕Ͱ͖ͨʂ
0.10.0
NavigatorʹcssϝιουΛՃ1 <div style="float: left">text</div> assert $("div").css("float") == "left" 1 http://www.gebish.org/manual/current/#focus
͓ྡ͞Μͷऔಘ͕Մೳʹ1 <div class="a"> <div class="b"> <p class="c"></p> <p class="d"></p> <p
class="e"></p> </div> <div class="f"></div> </div> assert $("p.d").previous() == $("p.c") assert $("p.d").next() == $("p.e") assert $("p.d").parent() == $("div.b") assert $("div.a").children() == $("div.b").add("div.f") 1 http://www.gebish.org/manual/current/#focus
toWait1 ϖʔδભҠ࣌ͷatνΣοΫʹwait͕͔͔Δ class PageWithTemplateUsingToWaitOption extends Page { static content =
{ asyncPageButton(to: AsyncPage, toWait: true) { $("button") } } } class AsyncPage extends Page { static at = { $("#async-content") } } 1 http://www.gebish.org/manual/current/#focus
0.12.0
WebDriverͷByΛαϙʔτ ݁Ռతʹxpathه๏Λαϙʔτ $(By.xpath('//p[@class="xpath"]'))
ϖʔδϨϕϧatCheckWaiting GebConfig্ͰͷઃఆΛϖʔδຖʹ্ֻ͚Δ class PageWithAtCheckWaiting extends Page { static atCheckWaiting =
true }
ϚχϡΞϧ͕Ascii Docʹ αϯϓϧಈ࡞͢ΔΑ͏ʹ
0.13.0
reportOnTestFailureOnly1 ςετ͕མͪͨ࣌ʮ͚ͩʯϨϙʔτΛऔಘ Spock, JUnit4Ͱαϙʔτ reportOnTestFailureOnly = true 1 http://www.gebish.org/manual/current/#focus
isFocused1 ΤϨϝϯτʹϑΥʔΧε͕͍ͨͬͯΔ͔ waitFor { nameInput.isFocused() } 1 http://www.gebish.org/manual/current/#focus
Geb͕·͢·͢ศརʹʂ
࿕ใ
JJUG CCC (5/21)
None
ඞࢮͰ͢ʂʂ
͝ڵຯͷ͋Δํͥͻʂʂ
͓͠·͍