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
20200730_Selenium+Capybaraで不安定なテストをPuppeteerで補強...
Search
Yusuke Iwaki
July 30, 2020
Programming
3.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20200730_Selenium+Capybaraで不安定なテストをPuppeteerで補強してみる
Yusuke Iwaki
July 30, 2020
More Decks by Yusuke Iwaki
See All by Yusuke Iwaki
Playwrightのソースコードに見る、自動テストを自動で書く技術
yusukeiwaki
15
7.1k
あなたのWebサービスはAIに自動テストしてもらえる?アクセシビリティツリーで読み解く、AIの『視点』
yusukeiwaki
1
9k
個人開発から公式機能へ: PlaywrightとRailsをつなげた3年の軌跡
yusukeiwaki
12
9k
Capybara+生成AIでどこまで本当に自然言語のテストを書けるか?
yusukeiwaki
7
5.8k
ChatGPTを個々人が使っていた組織から チームチャットにボットを棲まわせて みんなが活用する組織になるまでの変遷 ぜんぶ紹介しちゃいます
yusukeiwaki
0
3.4k
E2E testing on Rails 2023
yusukeiwaki
4
3.5k
Fukuoka.rb_0x100_LT.pdf
yusukeiwaki
0
470
Railsの システムテスト解剖学
yusukeiwaki
8
8k
RailsのSystem specから 🎭Playwrightを使う
yusukeiwaki
2
16k
Other Decks in Programming
See All in Programming
仕様駆動開発の消費期限
watany
14
6.2k
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
18k
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
200
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
210
メールのエイリアス機能を履き違えない
isshinfunada
0
220
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
150
AIが無かった頃の素敵な出会いの話
codmoninc
1
390
Cloudflare is Agents
chimame
0
140
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
170
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
360
VibeCodingからAgenticWorkflowへ
starfish719
0
280
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
180
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
360
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Amusing Abliteration
ianozsvald
1
240
Thoughts on Productivity
jonyablonski
76
5.3k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
430
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
Designing for humans not robots
tammielis
254
26k
30 Presentation Tips
portentint
PRO
1
360
Designing for Timeless Needs
cassininazir
1
430
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
290
Joys of Absence: A Defence of Solitary Play
codingconduct
1
430
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Transcript
!:VTVLF*XBLJ
"CPVUNF w "OESPJE04վ ˠεϚϗΞϓϦΤϯδχΞ ɹˠαʔόʔαΠυΤϯδχΞ w 2"ͷܦݧͳ͠ 2
ˡ͍·͜͜
ࠓͷ͓ w &&ςετɺ4FMFOJVN$BQZCBSBศརɻ w ͰɺΑ͘λΠϜΞτΤϥʔʹͳΔɻ w Ͱɺ3VCZ͔ͩΒ1VQQFUFFS +4 ʹΓ͑Δͷ͠ΜͲ͍ 3
ˠQVQQFUFFSSVCZΛ࡞ͬͯɺڞଘͤͯ͞Έͨ
$BQZCBSB 34QFD 4
None
None
None
None
ࠔͬͨʜ w ͱ͖Ͳ͖ɺͳ͔ͥ%0.ཁૉΛ௫ΜͰ͘Εͳ͍ w ʮը໘ભҠʯʮ%0.มߋݕʯَ͕ w ͰɺϦτϥΠॲཧΛຖॻ͖ͨ͘ͳ͍ʜʂ 9
None
1VQQFUFFS w XBJU'PS/BWJHBUJPO w ը໘ભҠ͢Δ·Ͱͭ w ඵܦͬͯભҠ͠ͳ͚Ε/BWJHBUJPO&SSPS w XBJU'PS4FMFDUPS w
ಛఆͷ%0.ཁૉ͕ݱΕΔPSফ͑Δ·Ͱͭ w ඵͬͯμϝͳΒUJNFPVUFSSPS 11
*OTJEF1VQQFUFFS w XBJU'PS/BWJHBUJPO w -JGFDZDMF&WFOUϕʔεͰը໘ભҠͷݕ w TSDDPNNPO'SBNF.BOBHFSUT w XBJU'PS4FMFDUPS w
.VUBUJPO0CTFSWFSϕʔεͰ%0.ͷมߋݕ w TSDDPNNPO%0.8PSMEUT 12 JOJUͱ͔%0.$POUFOU-PBEFEͱ͔
ᘳ͡Όͳ͍͔ʂ
ͪΐͬͱ·ͬͯʁ
ݴޠͷน w $BQZCBSB3VCZ w 1VQQFUFFS+BWB4DSJQU 15
+FTU 1VQQFUFFSʹҠߦ͢Ε͍͍ʁ w ॾൠͷࣄʹΑΓ ฒྻϥϯμϜࢼݧΛ͞ΕΔͱςετ͕௨Βͳ͍ w ࣦഊ࣌ͷεΫϦʔϯγϣοτͱΕͳ͍ w TNPPUIDPEFKFTUQVQQFUFFS w
Ϟνϕʔγϣϯෆʜ w $BQZCBSBΛશ൱ఆ͍ͨ͠Θ͚Ͱͳ͍ w ςετέʔε͕ͩͱɺҠߦͦͷͷ͕͠ΜͲ͍ 16
ͦ͜Ͱʜ Puppeteer#connect
None
Έଟ͔ͬͨैདྷͷεΫϦϓτ
͜Μͳ;͏ʹॻ͚Δͱ࠷ߴʁ ैདྷͷॲཧͦͷ··
ݴޠͷนʜ w $BQZCBSB3VCZ w 1VQQFUFFS+BWB4DSJQU 21 page = browser.pages.first page.waitForSelector('#login_form')
None
None
SVCZDEQDVQSJUF ɾ4FMFOJVNͰͳ͘GFSSVNΛϕʔεʹͨ͠$BQZCBSBυϥΠό SVCZDEQGFSSVN ɾ3VCZͰ1VQQFUFFSΛ·ͶͨϥΠϒϥϦ ɾXBJU'PS4FMFDUPS ݱࡏ ະ࣮ ˠ4FMFOJVN $BQZCBSBͷิڧʹͳΒͳ͍ɻ 25
ํ͕ͳ͍ͷͰɺࣗͰpuppeteer-rubyΛ࡞ͬͨɻ
None
None
None
%&.0
QVQQFUFFSSVCZ w 4FMFOJVN $BQZCBSBͱڞଘՄೳ w XBJU@GPS@OBWJHBUJPO XBJU@GPS@TFMFDUPS͑Δ 31 ˠطଘςετͷऑ͍෦ΛิڧͰ͖Δʜ
None
/05QSPEVDUJPOSFBEZ w ࠔ͍ͬͯΔਓ͕͍ͨΒͬͯΈ͍ͯͩ͘͞ w ͥͻϑΟʔυόοΫ͍ͩ͘͞ 33 ˠ࣮༻ʹ͑͏Δঢ়ଶʹͳͬͨΒόʔδϣϯʹ͠·͢
αϯϓϧू IUUQTHJUIVCDPN:VTVLF*XBLJQVQQFUFFSSVCZFYBNQMFT ୯७ͳεΫϦʔϯγϣοτऔಘ IPUFMUFTUQMBOTQIFSFͷ༧ɾεΫϦʔϯγϣοτ
͋Γ͕ͱ͏͍͟͝·ͨ͠