QA ์ง์์ 5๋ช ์ค 4๋ช ์ ์๋ํ๋ ํ ์คํธ ์์ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ณ ์ถ์ดํฉ๋๋ค. ๋ชจ๋ ํ์ฌ๊ฐ ๊ทผ๋ฌด ์๊ฐ ๋์ ์๋ ํ ์คํฐ์ ์ด๋ฌํ ์๊ตฌ๋ฅผ ์ถฉ์กฑํ ์ ์๋ ๊ฒ์ ์๋๋๋ค. Wrike๋ ์ง์๋ค์ ์ํ ์๋ํ ํ๊ต๋ฅผ ์ด์๊ณ ๋ง์ ์ฌ๋๋ค์ ์ด๋ฌํ ์ด๋ง์ ์คํํ์ต๋๋ค. ์ ๋ ๋ฐ๋ก ์ด ํ๊ต์ QA ํ์์ผ๋ก ์ฐธ์ฌํ์ต๋๋ค.
๋๋ Selenium์ผ๋ก ์์
ํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ๊ณ ์ด์ ๋ ์ฌ์ค์ ์ธ๋ถ ๋์ ์์ด ํน์ ์์ ์๋ ํ
์คํธ๋ฅผ ๋
๋ฆฝ์ ์ผ๋ก ์ง์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ์ ๊ณต๋ ๊ฒฝํ ๊ฒฐ๊ณผ์ ๊ฐ์ธ์ ์ธ ๊ฒฐ๋ก ์ ๋ฐํ์ผ๋ก ๊ฐ์ฅ ์ด์์ ์ธ ์๋ํ ํ๊ต์ ๋ํ ๊ณต์์ ๋์ถํ๋ ค๊ณ ๋
ธ๋ ฅํ ๊ฒ์
๋๋ค.
Wrike์ ํ๊ต ์กฐ์ง ๊ฒฝํ
์๋ํ ํ๊ต์ ํ์์ฑ์ด ๋ถ๋ช ํด์ง์ ์๋ํ ํ๊ต์ ์กฐ์ง์ ์๋ํ ๊ธฐ์ ์ฑ ์์์ธ Stas Davydov์๊ฒ ๋์ด๊ฐ์ต๋๋ค. ๊ทธ๊ฐ ์ ์ด ๊ณํ์ ์๊ฐํด ๋๋์ง, ๊ฒฐ๊ณผ๋ฅผ ์ป์๋์ง, ๋ณด๋ธ ์๊ฐ์ ํํํ๋์ง ์ค๋ช ํ ์ ์๋ ์ฌ๋์ ๋๊ตฌ์ ๋๊น? ๊ทธ์๊ฒ ๋ฐ๋ฅ์ ์ค์๋ค:
โ 2016๋ ์ ์ฐ๋ฆฌ๋ ์๋ ํ ์คํธ๋ฅผ ์ํ ์๋ก์ด ํ๋ ์์ํฌ๋ฅผ ์์ฑํ์ฌ ํ ์คํธ ์์ฑ์ด ์ฌ์์ง๋๋ก ๋ง๋ค์์ต๋๋ค. ์ผ๋ฐ ๋จ๊ณ๊ฐ ๋ํ๋๊ณ ๊ตฌ์กฐ๊ฐ ํจ์ฌ ๋ ์ดํดํ๊ธฐ ์ฌ์์ก์ต๋๋ค. ์ฐ๋ฆฌ๋ ์์ด๋์ด๋ฅผ ๋ด๋์์ต๋๋ค. ์๋ก์ด ํ ์คํธ๋ฅผ ์์ฑํ๋ ค๋ ๋ชจ๋ ์ฌ๋์ ์ฐธ์ฌ์ํค๊ณ ๋ ์ฝ๊ฒ ์ดํดํ ์ ์๋๋ก ์ผ๋ จ์ ๊ฐ์๋ฅผ ๋ง๋ค์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ณต๋์ผ๋ก ์ฃผ์ ๊ณํ์ ์ธ์ ๊ณ , ๋ฏธ๋์ ๊ฐ์ฌ๋ค์ ๊ฐ์ ํ๋์ฉ ์ฃผ์ ๋ฅผ ์ ํํ์ฌ ์ด์ ๋ํ ๋ณด๊ณ ์๋ฅผ ์ค๋นํ์ต๋๋ค.
โ ํ์๋ค์ ์ด๋ค ์ด๋ ค์์ ๊ฒช์๋์?
โ ๋ฌผ๋ก ์ฃผ๋ก ๊ฑด์ถ์ด์ฃ . ํ ์คํธ ๊ตฌ์กฐ์ ๋ํ ๋ง์ ์ง๋ฌธ์ด ์์์ต๋๋ค. ํผ๋๋ฐฑ ์ค์ ์ด ์ฃผ์ ์ ๊ดํด ๋ง์ ๊ธ์ด ์ฐ์ฌ์ก๊ณ , ๋ ์์ธํ ์ค๋ช ํ๊ธฐ ์ํด ์ถ๊ฐ ๊ฐ์๋ฅผ ํด์ผ ํ์ต๋๋ค.
โ ํ๊ต๋ ์ฑ๊ณผ๋ฅผ ๊ฑฐ๋์๋์?
- ๋ค, ๋ฌผ๋ก ์ด์ฃ . ๊ทธ๋ ๋๋ถ์ ๋ง์ ์ฌ๋๋ค์ด ํ ์คํธ ์์ฑ์ ์ฐธ์ฌํ๊ณ ํ๊ท ์ ์ผ๋ก ๋ณ์์์๋ ๋ชจ๋ ์ฌ๋๋ค์ด ์๋ ํ ์คํธ๊ฐ ๋ฌด์์ธ์ง, ์ด๋ป๊ฒ ์์ฑ๋๊ณ ์ด๋ป๊ฒ ์คํ๋๋์ง ๋ ์ ์ดํดํ๊ธฐ ์์ํ์ต๋๋ค. ์๋ํ ์์ง๋์ด์ ๋ถ๋ด๋ ๊ฐ์ํ์ต๋๋ค. ์ด์ ํ ์คํฐ์ ๊ฐ๋ฐ์๊ฐ ๊ฑฐ์ ๋ชจ๋ ์ํฉ์์ ์ด ๋ฌธ์ ์ ์ค์ค๋ก ๋์ฒํ๊ธฐ ์์ํ๊ธฐ ๋๋ฌธ์ ํ ์คํธ ๋ถ์์ ๋ํ ๋์ ์์ฒญ์ ํจ์ฌ ๋ ์ ๊ฒ ๋ฐ์์ต๋๋ค. ๊ธ์, ๋ถ์์๋ ๋ช ๊ฐ์ง ๋ด๋ถ ์ด์ ์ด ์์ต๋๋ค. ์ผ๋ถ ์๋ํ ์์ง๋์ด๊ฐ ์ด๋ฏธ ์ปจํผ๋ฐ์ค์์ ํ๋ ์ ํ ์ด์ ์ ํ ์ ์์๊ณ ์ ๊ท ์ ์ฌ์๋ฅผ ์ํ ๊ฐ๋ ฅํ ๋น๋์ค ๋ฐ ํ๋ ์ ํ ์ด์ ์ธํธ๋ฅผ ๋ฐ์ ๋๋ถ์ ์ฐ๋ฆฌ๋ ํ๋ ์ ํ ์ด์ ๋ฐ ๊ฐ์ ๊ฒฝํ์ ์ป์์ต๋๋ค.
์ ๋ฅผ ๋์ ํ์ฌ ๋ถ์ ๊ฐ์ ์์ฌ์ํต์ด ํฐ๋ฌด๋์์ ์ ๋๋ก ์ฌ์ด ์์ค์ผ๋ก ๋จ์ํ๋์๋ค๋ ์ ์ ๋ง๋ถ์ด๊ฒ ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ด์ ์ด๋ค ์ฌ๋ก์ ์ด๋ค ์์ค์ ์์์ฑ์ ์๋ํํ ์ง ๊ณ ๋ฏผํ ํ์๊ฐ ๊ฑฐ์ ์์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ, ๋ชจ๋ ์ดํด๊ด๊ณ์๋ค์ด ์ง์์ ์ผ๋ก ์ฑ์ฅํ๊ณ ์๋ ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง์ ๋ง์ ์ ๊ธฐํ๊ณ ์์ต๋๋ค. ๋๊ตฌ๋ ๋ค๋ฅธ ์ฌ๋์๊ฒ ๋ถ๊ฐ๋ฅํ ๊ฒ์ ์๊ตฌํ์ง ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ํ ์์ ์ ๋ฏธ์น๋ ์ํฅ์ ํ์คํ ๊ธ์ ์ ์ ๋๋ค. ์๋ง๋ ์ด ๊ธ์ ์ฝ๊ณ ์๋ ๋๋ฃ๋ค๋ ๋น์ทํ ์ผ์ ํด๋ณผ ์๊ฐ์ ํ๊ณ ์์ง ์์๊น? ๊ทธ๋ ๋ค๋ฉด ์กฐ์ธ์ ๊ฐ๋จํ ๊ฒ์ ๋๋ค. ์๋ํ๋ ํ ์คํธ๊ฐ ์ฐ์ ์์๋ผ๋ฉด ๊ทธ๋งํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋ค์์ผ๋ก, ๋ ๋ณต์กํ ์ง๋ฌธ์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ ๊ฐ๋ฅํ ํ ์ ํํ๊ฒ ๊ตฌ์ฑํ์ฌ ๋ชจ๋ ๋น์ฌ์์ ๋น์ฉ์ ์ต์ํํ๊ณ ์ถ๋ ฅ์ ์ต๋ํํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์ ๋ฆฌ ํ
ํ๊ต๋ ์ ์ฉํ์ง๋ง Stas๊ฐ ์ธ์ ํ๋ฏ์ด ๋ช ๊ฐ์ง ์ด๋ ค์์ด ์์๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ ๊ฐ์๋ฅผ ์ค๋นํด์ผํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ๋ฌด์งํ ๋ ์์ ๊ณผ ๋ ์์ ์ ๋น๊ตํ๋ ์ต๊ทผ ํ์์ผ๋ก์ ํ ์คํฐ๊ฐ ์๋ํ๋ ํ ์คํธ๋ฅผ ์ดํดํ๋๋ก ๊ฐ๋ฅด์น๋ ์ด์์ ์ธ ๋ฐฉ๋ฒ์ ๋ง๋ค๊ธฐ ์ํด ๋ค์ ๋จ๊ณ๋ฅผ ๊ณต์ํํ์ต๋๋ค.
0๋จ๊ณ. ์ฌ์ ๋ง๋ค๊ธฐ
๋ฌผ๋ก ์ด ๋จ๊ณ๋ QA์๋ง ํ์ํ ๊ฒ์ ์๋๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ ์ด๋ฅผ ๋ช ์์ ์ผ๋ก ๋ฐํ๊ณ ์ถ์ต๋๋ค. ์๋ํ ์ฝ๋๋ฒ ์ด์ค๋ ์ฝ์ ์ ์๋ ํ์์ผ๋ก ์ ์ง๋์ด์ผ ํฉ๋๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด - ์ ์ด๋ ์ธ์ด, ์ฌ๊ธฐ์์ ๋ค์ด๋น์ ์์ํ ์ ์์ต๋๋ค.
๋ค์์ ์์ ์ด๋ฆ์ด ํฌํจ๋ ์์
๋ณด๊ธฐ์ ์คํฌ๋ฆฐ์ท์
๋๋ค. ๋น์ ์ด taskview๋ฅผ ๋ธ๋๋ฐ์ค๋ก ํ
์คํธํ๊ณ ์๊ณ ํ์ ๋์ Selenium์ ๋ณธ ์ ์ด ์๋ค๊ณ ์์ํด ๋ด
์๋ค. ์ด ์ฝ๋๋ ๋ฌด์์ ํฉ๋๊น?
(์คํฌ์ผ๋ฌ - ๊ด๋ฆฌ์๋ฅผ ๋์ ํ์ฌ ๋๋จธ์ง ์์
์ ํตํด ์์
์ด ์ญ์ ๋ ํ ์คํธ๋ฆผ์ ์ด์ ๋ํ ๊ธฐ๋ก์ด ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.)
์ด ๋จ๊ณ๋ง์ผ๋ก๋ QAA์ QA ์ธ์ด๊ฐ ๋ ๊ฐ๊น์์ง๋๋ค. ์๋ํ ํ์ด ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ค๋ช ํ๊ธฐ๊ฐ ๋ ์ฝ๊ณ , ์๋ ํ ์คํฐ๋ ์ฌ๋ก๋ฅผ ๋ง๋๋ ๋ฐ ๋ ์ ์ ๋ ธ๋ ฅ์ ๋ค์ด๊ฒ ๋์ด ๋ ์์ธํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ๊ทธ๋๋ ๋ชจ๋๊ฐ ์๋ก๋ฅผ ์ดํดํฉ๋๋ค. ์ค์ ํ๋ จ์ด ์์๋๊ธฐ๋ ์ ์ ์ฐ๋ฆฌ๋ ์๊ธ์ ๋ฐ์์ต๋๋ค.
1๋จ๊ณ. ๋ฌธ๊ตฌ ๋ฐ๋ณต
์ธ์ด์์ ๋ณํ์ ๊ณ์ํฉ์๋ค. ์ฐ๋ฆฌ๊ฐ ์ด๋ฆด ๋ ๋งํ๋ ๋ฒ์ ๋ฐฐ์ธ ๋ ์ด์์ด๋ ์๋ฏธ๋ก ๋ถํฐ ์์ํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ "์๋ง", "์ฅ๋๊ฐ ๊ตฌ์
"์ ๋ฐ๋ณตํ์ง๋ง ์ด๋ฌํ ๋จ์ด์ ์์ ์ธ๋ ์ ๋ฝ ์ด๊ทผ์ ์ฆ์ ๋ค์ด ๊ฐ์ง ์์ต๋๋ค. ๊ทธ๋์ ์ฌ๊ธฐ ์์ต๋๋ค. ์๋ํ๋ ๊ฒ์ ์์ฑํ์ง ์๊ณ ์๋ ํ
์คํธ์ ๊ธฐ์ ์ ๊ธฐ๋ฅ์ ๊น์ด ํ๊ณ ๋๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค.
์ฝ๊ฐ ๋ฐ์ง๊ด์ ์ผ๋ก ๋ค๋ฆฌ์ง๋ง ์๋ํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ๊ฐ์์์๋ ์๋ ํ ์คํธ๋ฅผ ์ง์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ธฐ์ด๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ฐ๋ฐ ํ๊ฒฝ(์ ๊ฒฝ์ฐ์๋ Intellij IDEA) ์ค์ ์ ๋๊ณ ๊ธฐ์กด ๋จ๊ณ๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์กด ํด๋์ค์ ๋ค๋ฅธ ๋ฉ์๋๋ฅผ ์์ฑํ๋ ๋ฐ ํ์ํ ์ต์ ์ธ์ด ๊ท์น์ ์ค๋ช ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๋ค๊ณผ ํจ๊ป ํ๋ ๋๋ ๋ ๊ฐ์ ํ ์คํธ๋ฅผ ์์ฑํ๊ณ ๊ทธ๋ค์๊ฒ ์์ ๋ฅผ ์ค๋๋ค. ๋๋ ๋ค์๊ณผ ๊ฐ์ด ํ์ํํ ๊ฒ์ ๋๋ค: ๋ธ๋์น๊ฐ ๋ง์คํฐ์์ ๋ถ๊ธฐ๋์์ง๋ง ๋ง์คํฐ์์ ์ฌ๋ฌ ํ ์คํธ๊ฐ ์ ๊ฑฐ๋์์ต๋๋ค. ๊ทธ๋ค์ ์ค๋ช ๋ง ๋จ์ต๋๋ค. ์ฐ๋ฆฌ๋ ํ ์คํฐ์๊ฒ ์ด๋ฌํ ํ ์คํธ๋ฅผ ๋ณต์ํ๋๋ก ์์ฒญํฉ๋๋ค(๋ฌผ๋ก show diff๋ฅผ ํตํ์ง ์์).
๊ฒฐ๊ณผ์ ์ผ๋ก ๋ชจ๋ ์ผ์ ๋ฃ๊ณ ํํ ์ฌ๋์ ๋ค์๊ณผ ๊ฐ์ ์ผ์ ํ ์ ์์ต๋๋ค.
- ๊ฐ๋ฐ ํ๊ฒฝ ์ธํฐํ์ด์ค ์์ ๋ฐฉ๋ฒ ๋ฐฐ์ฐ๊ธฐ: ๋ธ๋์น, ๋จ์ถํค, ์ปค๋ฐ ๋ฐ ํธ์ ์์ฑ
- ์ธ์ด ๋ฐ ํด๋์ค ๊ตฌ์กฐ์ ๊ธฐ๋ณธ ์ฌํญ์ ์์งํฉ๋๋ค. ์ฃผ์ ์ ์ฝ์ ํ ์์น์ ๊ฐ์ ธ์ฌ ์์น, ์ฃผ์์ด ํ์ํ ์ด์ , ๋จ๊ณ ์ธ์ ๊ฑฐ๊ธฐ์์ ์ด๋ค ์ข ๋ฅ์ ๊ธฐํธ๊ฐ ๋ฐ๊ฒฌ๋๋์ง.
- ํ๋, ๋๊ธฐ, ํ์ธ์ ์ฐจ์ด๋ฅผ ์ดํดํ๊ณ , ๋ฌด์์ ์ฌ์ฉํ ์ง;
- ์๋ ํ ์คํธ์ ์๋ ๊ฒ์ฌ์ ์ฐจ์ด์ ์ ํ์ธํ์ธ์. ์๋ ํ ์คํธ์์๋ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์์ ์ ์ํํ๋ ๋์ ํ๋ ๋๋ ๋ค๋ฅธ ํธ๋ค๋ฌ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์์ ๋ณด๊ธฐ๋ฅผ ์ด๊ณ , ์ ๋ ฅ์ ์ ํํ๊ณ , ํ ์คํธ๋ฅผ ์ ๋ ฅํ๊ณ ๋ณด๋ด๊ธฐ ๋ฒํผ์ ํด๋ฆญํ๋ ๋์ ๋ฐฑ์๋์ ์ง์ ์๊ฒฌ์ ๋ณด๋ ๋๋ค.
- ๋ค์ ๋จ๊ณ์์ ๋ต๋ณํ ์ง๋ฌธ์ ๊ณต์ํํฉ๋๋ค.
๋ง์ง๋ง ์์ ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด๋ฌํ ๋ต๋ณ์ ๋ฏธ๋ฆฌ ์ฝ๊ฒ ์ฃผ์ด์ง ์ ์์ง๋ง, ๊ณต์ํ๋ ์ง๋ฌธ์ด ์๋ ๋ต๋ณ์ ๊ธฐ์ต๋์ง ์์ผ๋ฉฐ ์ต์ข ์ ์ผ๋ก ํ์ํ ๋ ์ฌ์ฉ๋์ง ์๋ ๊ฒ์ด ์ค์ํ ๊ต์ ์๋ฆฌ์ ๋๋ค.
์ด๋ QA ํ์ ์๋ํ ์์ง๋์ด๊ฐ ๊ทธ์๊ฒ ์ ํฌ์์ ๋ช ๊ฐ์ง ํ ์คํธ๋ฅผ ์์ฑํ๋ ์์ ์ ํ ๋นํ๊ณ ๊ทธ์ ์ง์ ์ ํ์ ์ปค๋ฐ์ ํ์ฉํ๋ ๊ฒ์ด ์ด์์ ์ ๋๋ค.
์ฃผ์ง ๋ง์์ผ ํ ๊ฒ:
- ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ธฐ๋ฅ๊ณผ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์์ฒด์ ๋ํ ์ฌ์ธต์ ์ธ ์ง์์ ๋ ๋ฆฝ์ ์ผ๋ก ๋ธ๋์น๋ฅผ ์์ ํ ๋๋ง ํ์ํฉ๋๋ค. ๊ธฐ์ต๋์ง๋ ์๊ณ ๋ ๋ฒ, ์ธ ๋ฒ ์ค๋ช ํด์ผ ํ์ง๋ง ์ฐ๋ฆฌ๋ ์๋ํ ์์ง๋์ด์ ์๊ฐ์ ์์คํ ์ฌ๊ธฐ์ฃ ? ์: ์ถฉ๋ ํด๊ฒฐ, git์ ํ์ผ ์ถ๊ฐ, ์ฒ์๋ถํฐ ํด๋์ค ์์ฑ, ์ข ์์ฑ ์์ ;
- xpath์ ๊ด๋ จ๋ ๋ชจ๋ ๊ฒ. ์ง์งํ๊ฒ. ๊ทธ๊ฒ์ ๋ํด ๋ณ๋๋ก, ๋จ๋ฒ์ ๋งค์ฐ ์ง์ค์ ์ผ๋ก ์ด์ผ๊ธฐํด์ผ ํฉ๋๋ค.
Step 2. ๋ฌธ๋ฒ ์์ธํ ์ดํด๋ณด๊ธฐ
0๋จ๊ณ์ ์์ ๋ณด๊ธฐ ์คํฌ๋ฆฐ์ท์ ๊ธฐ์ตํด ๋ด ์๋ค. checkCommentWithTextExists๋ผ๋ ๋จ๊ณ๊ฐ ์์ต๋๋ค. ํ ์คํฐ๋ ์ด๋ฏธ ์ด ๋จ๊ณ์ ๊ธฐ๋ฅ์ ์ดํดํ๊ณ ์์ผ๋ฏ๋ก ๋จ๊ณ ๋ด๋ถ๋ฅผ ์ดํด๋ณด๊ณ ์กฐ๊ธ ๋ถํดํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ด๋ถ์๋ ๋ค์์ด ์์ต๋๋ค.
onCommentBlock(userName).comment(expectedText).should(displayed());
onCommentBlock์ ์ด๋์ ์๋์?
onCommonStreamPanel().commentBlock(userName);
์ด์ ์ฐ๋ฆฌ๋ "์ฅ๋๊ฐ์ ์ฌ์ธ์"๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ์๋๋ผ "๋งจ ์์์ ์ธ ๋ฒ์งธ ์ ๋ฐ์ ์๋ ํ๋์ ์บ๋น๋์ ์๋ Detsky Mir ๋งค์ฅ์์ ์ฅ๋๊ฐ์ ์ฌ์ธ์"๋ผ๊ณ ๋งํ๋ ๋ฒ์ ๋ฐฐ์๋๋ค. ๋ ํฐ ์์(์คํธ๋ฆผ -> ํน์ ์ฌ๋์ ๋๊ธ์ด ์๋ ๋ธ๋ก -> ์ง์ ๋ ํ ์คํธ๊ฐ ์๋ ์ด ๋ธ๋ก์ ๋ถ๋ถ)์์ ์์ฐจ์ ์ผ๋ก ์์๋ฅผ ๊ฐ๋ฆฌํจ๋ค๋ ์ ์ ์ค๋ช ํ ํ์๊ฐ ์์ต๋๋ค.
์๋์, ์์ง์ xpath์ ๋ํด ์ด์ผ๊ธฐํ ๋๊ฐ ์๋๋๋ค. ์ด๋ฌํ ๋ชจ๋ ์ง์นจ์ด ์ค๋ช ๋์ด ์์ผ๋ฉฐ ์์์ด ์ด๋ฅผ ํตํด ์งํ๋๋ค๋ ์ ์ ๊ฐ๋ตํ๊ฒ ์ธ๊ธํ์ญ์์ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ ์ด๋ฌํ ๋ชจ๋ matcher์ waiter์ ๋ํด ์ด์ผ๊ธฐํด์ผ ํฉ๋๋ค. ์ด๋ค์ ํนํ ์ด ๋จ๊ณ์ ๊ด๋ จ๋์ด ์์ผ๋ฉฐ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ดํดํ๋ ๋ฐ ํ์ํฉ๋๋ค. ํ์ง๋ง ๋๋ฌด ๋ง์ด ํ์ง ๋ง์ธ์. ํ์์ด ๋์ค์ ์ค์ค๋ก ๋ ๋ณต์กํ ์ฃผ์ฅ์ ๊ณต๋ถํ ์ ์์ต๋๋ค. ์๋ง๋ should, waitUntil,display();,exist();, not();์ด๋ฉด ์ถฉ๋ถํ ๊ฒ์ ๋๋ค.
์์ ๋ ๋ถ๋ช ํฉ๋๋ค. ํน์ ํ์์ ํ ์คํธ์ ํ์ํ ์ฌ๋ฌ ๋จ๊ณ์ ๋ด์ฉ์ด ์ ๊ฑฐ๋ ๋ถ๊ธฐ์ ๋๋ค. ํ ์คํฐ๊ฐ ์ด๋ฅผ ๋ณต์ํ๊ณ ์คํ์ ๋ค์ ๋ น์์ผ๋ก ๋ง๋ค๋๋ก ํ์ญ์์ค.
๋ํ ํ ์คํธ ํ์ ์์ ์ ์๋ก์ด ๊ธฐ๋ฅ์ด ์์ ๋ฟ๋ง ์๋๋ผ ์ผ๋ถ ๋ฒ๊ทธ ์์ ๋ ์๋ ๊ฒฝ์ฐ ์ฆ์ ์ด๋ฌํ ๋ฒ๊ทธ์ ๋ํ ํ ์คํธ๋ฅผ ์์ฑํ๊ณ ๋ฆด๋ฆฌ์คํ๋๋ก ์์ฒญํ ์ ์์ต๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ชจ๋ ์์๊ฐ ์ด๋ฏธ ์ค๋ช ๋์ด ์์ผ๋ฏ๋ก ๋ช ๊ฐ์ง ๋จ๊ณ๋ง ๋๋ฝ๋์์ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์๋ฒฝํ ์ด๋์ด ๋ ๊ฒ์ ๋๋ค.
3๋จ๊ณ. ์์ ๋ชฐ์
์ง์ ์ ๋ฌด๋ฅผ ๊ณ์ ์ํํ ํ ์คํฐ๋ฅผ ์ํด ์ต๋ํ ์๋ฒฝํ๊ฒ ๋ง๋ญ๋๋ค. ๋ง์ง๋ง์ผ๋ก xpath์ ๋ํด ์ด์ผ๊ธฐํด์ผ ํฉ๋๋ค.
๋จผ์ , ์ด๋ฌํ onCommentBlock ๋ฐ ์ฃผ์์ด ๋ชจ๋ ์ค๋ช ๋์ด ์์์ ๋ถ๋ช ํ ํ๊ฒ ์ต๋๋ค.
์ด๊ณ :
"//div[contains(@class, โstream-panelโ)]//a[contains(@class,'author') and text()='{{ userName }}โ]//div[contains(@class,'change-wrapper') and contains(.,'{{ text }}โ)]"
์ด์ผ๊ธฐ์ ์์๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋จผ์ ๊ธฐ์กด xpath๋ฅผ ๊ฐ์ ธ์ ์์ ํญ์ ์์๊ฐ ํ๋๋ง ํฌํจ๋์ด ์๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ๋ค์์ผ๋ก ๊ตฌ์กฐ์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค. WebElement๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ์ ์ ์์์ ๋ํด ๋ณ๋์ ํ์ผ์ ๋ง๋ค์ด์ผ ํ๋ ๊ฒฝ์ฐ์ ๋๋ค. ์ด๋ฅผ ํตํด ์์์ ๋ ์ ์ดํดํ ์ ์์ต๋๋ค.
๋จ์ผ ์์๋ ์ ์ฒด taskview์ด๊ณ ํ์ ์์(ํ์ ์์๋ฅผ ํฌํจํ๋ ์ ์ฒด ์คํธ๋ฆผ), ๋ณ๋์ ์ฃผ์ ๋ฑ์ ํฌํจํ๋ค๋ ์ ์ ๋ช ์์ ์ผ๋ก ๋ช ์ํด์ผ ํฉ๋๋ค. ํ์ ์์๋ ํ์ด์ง์ ์๋ ํ ์คํธ ํ๋ ์์ํฌ ๊ตฌ์กฐ ๋ชจ๋์์ ์์ ์์ ๋ด๋ถ์ ์์ต๋๋ค.
์ด ์์ ์์ ์ฒญ์ค์ ์ด๋ป๊ฒ ์์๋๋์ง, onCommentBlock์์ ์ ๋ค์ ๋ฌด์์ ์
๋ ฅํ ์ ์๋์ง ํ์คํ ์ดํดํด์ผ ํฉ๋๋ค. ์ด ์์ ์์๋ /, //, ., [] ๋ฑ ๋ชจ๋ ์ฐ์ฐ์๋ฅผ ์ค๋ช
ํฉ๋๋ค. ์ฌ์ฉ์ ๋ํ ์ง์์ ๋ก๋์ ์ถ๊ฐํฉ๋๋ค. @class
๊ทธ๋ฆฌ๊ณ ๊ธฐํ ํ์ํ ๊ฒ๋ค.
ํ์๋ค์ xpath๋ฅผ ์ด๋ฐ ์์ผ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ์ ์ดํดํด์ผ ํฉ๋๋ค. ํตํฉํ๋ ค๋ฉด - ๋ง์ต๋๋ค, ์์ ์
๋๋ค. ์์์ ๋ํ ์ค๋ช
์ ์ญ์ ํ๊ณ ํ
์คํธ ์์
์ ๋ณต์ํ๋๋ก ํฉ๋๋ค.
์ ์ด ํน๋ณํ ๊ฒฝ๋ก๊ฐ ์์ต๋๊น?
๋ณต์กํ ์ง์์ผ๋ก ์ฌ๋์๊ฒ ๊ณผ๋ถํ๋ฅผ ์ฃผ์ด์๋ ์ ๋์ง๋ง, ๋ชจ๋ ๊ฒ์ ํ๊บผ๋ฒ์ ์ค๋ช ํด์ผ ํ๋๋ฐ ์ด๊ฒ์ด ์ด๋ ค์ด ๋๋ ๋ง์ด๋ค. ์ด ๊ฒฝ๋ก๋ฅผ ํตํด ์ฐ๋ฆฌ๋ ๋จผ์ ์ฒญ์ทจ์๊ฐ ์ง๋ฌธ์ ํ๊ณ ๋ฌด์ธ๊ฐ๋ฅผ ์ดํดํ์ง ๋ชปํ๊ณ ๋ฐ๋ก ๋ค์ ์๊ฐ์ ๋๋ตํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ์ ์ฒด ์ํคํ ์ฒ์ ๋ํด ์ด์ผ๊ธฐํ๋ฉด ๋จ๊ณ ๋๋ xpath ์ฃผ์ ๊ฐ ๋ถ์๋ ๋ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ ์ดํดํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ ์ํ์ง ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ์ฌ๋ฌ๋ถ ์ค ์ผ๋ถ๋ ํ๋ก์ธ์ค๋ฅผ ๋์ฑ ์ต์ ํํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ฒฝํ์ ๊ณต์ ํ ์ ์์ ๊ฒ์
๋๋ค. ๋๊ธ์์ ๋น์ทํ ์ ์์ ๊ธฐ๊บผ์ด ์ฝ์ด๋ณด๊ฒ ์ต๋๋ค!
์ถ์ฒ : habr.com