๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

SQA/Automation

Selenium ์‚ฌ์šฉ์ž ์•ก์…˜ ์‹คํ–‰ sendKey clear submit

์›น ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ฐพ์•˜๋‹ค๋ฉด, ์‚ฌ์šฉ์ž ์•ก์…˜์„ ์ทจํ•˜๊ฒŒ ํ•ด์•ผ ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์—˜๋ฆฌ๋จผํŠธ์— ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž ์•ก์…˜์„ ์•Œ์•„๋ณด์ž.

์›น ์—˜๋ฆฌ๋จผํŠธ๋งˆ๋‹ค ์ทจํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์•ก์…˜์ด ๋‹ค๋ฅด๋‹ค. ํ…์ŠคํŠธ ๋ฐ•์Šค ์—˜๋ฆฌ๋จผํŠธ์—๋Š” ๋ฌธ์ž ์ž…๋ ฅ, ๋ฌธ์ž ์‚ญ์ œ๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ฒ„ํŠผ ์—˜๋ฆฌ๋จผํŠธ์—๋Š” ํด๋ฆญ, ๋ฒ„ํŠผ์˜ ํฌ๊ธฐ ๊ตฌํ•˜๊ธฐ ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์›น ์—˜๋ฆฌ๋จผํŠธ์— ์œ ํšจํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž ์•ก์…˜์„ ๋„ฃ๋”๋ผ๋„, ์›น๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋ฌด์‹œํ•œ๋‹ค. (์˜ค๋ฅ˜ ๋‚˜์ง€ ์•Š๋Š”๋‹ค.)

 

์‚ฌ์šฉ์ž์•ก์…˜-์‹คํ–‰
์‚ฌ์šฉ์ž ์•ก์…˜ ์‹คํ–‰

 

์›น ์—˜๋ฆฌ๋จผํŠธ์—์„œ ์•ก์…˜ ์‹คํ–‰

์›น ์—˜๋ฆฌ๋จผํŠธ์— ์‚ฌ์šฉ์ž ์•ก์…˜์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ์ž๋™ํ™” ์ž‘์—…์˜ ํ•ต์‹ฌ์ด๋‹ค. ์ž๋™ํ™”๋Š” ์‚ฌ์šฉ์ž์˜ ํ–‰๋™์„ ๊ทธ๋Œ€๋กœ ์˜ฎ๊ฒจ์„œ ์ปดํ“จํ„ฐ๊ฐ€ ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ž‘์—…์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์‚ฌ์šฉ์ž ์•ก์…˜์— ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์•Œ์•„๋ณด์ž.

 

๋„ค์ด๋ฒ„ ๋ฉ”์ธ ํ™ˆํŽ˜์ด์ง€์˜ ๊ฒ€์ƒ‰์ฐฝ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๊ฒƒ์ด๋‹ค.

<input id="query" name="query" type="text" title="๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ" maxlength="255" 
class="input_text" tabindex="1" accesskey="s" style="ime-mode:active;" 
autocomplete="off" placeholder="๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”." 
onclick="document .getElementById('fbm').value=1;" value="" data-atcmp-element="">

 

๋„ค์ด๋ฒ„-๊ฒ€์ƒ‰์ฐฝ
๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰์ฐฝ

 

 

 

sendKey()

sendKey ๋ฉ”์„œ๋“œ๋Š” ํ…์ŠคํŠธ ๋ฐ•์Šค๋‚˜ ํ…์ŠคํŠธ ์˜์—ญ ์—˜๋ฆฌ๋จผํŠธ์—์„œ ์‚ฌ์šฉํ•œ๋‹ค. ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์‚ฌ์šฉ์ž ์•ก์…˜์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•œ๋‹ค.

์ž…๋ ฅ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ฌธ์ž์—ด์ด๊ณ , ๋ฐ˜ํ™˜๊ฐ’์€ ์—†๋‹ค.

 

๊ฒ€์ƒ‰์ฐฝ์— ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์ž.

public void elementSendKeysExample() {
    WebElement searchBox = driver.findElement(By.name("query"));

    searchBox.sendKeys("Phones");
    searchBox.submit();

    assertThat(driver.getTitle())
            .isEqualTo("Phones : ๋„ค์ด๋ฒ„ ํ†ตํ•ฉ๊ฒ€์ƒ‰");
}

Backspace๋‚˜ Enter, Tab, Shift ๋“ฑ ํŠน์ˆ˜ํ‚ค ์ž…๋ ฅ์€ Keys๋ผ๋Š” ์—ด๊ฑฐํ˜• ์›น๋“œ๋ผ์ด๋ฒ„ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

Shiftํ‚ค๋ฅผ ๋ˆ„๋ฅธ ์ƒํƒœ๋กœ ๊ฒ€์ƒ‰์–ด๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ์ž…๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋Š” '์˜์–ด ์†Œ๋ฌธ์ž'์ž…๋ ฅ ์ƒํƒœ์ผ ๋•Œ, ์ˆ˜ํ–‰ํ•ด์•ผ ์ •์ƒ ์ˆ˜ํ–‰๋œ๋‹ค. (ํ•ด๋‹น ๋ถ€๋ถ„์€ ๊ฐœ์„ ์ด ํ•„์š”ํ•ด๋ณด์ธ๋‹ค.)

public void elementSendKeysCompositeExample() {
    WebElement searchBox = driver.findElement(By.name("query"));

    searchBox.sendKeys(Keys.chord(Keys.SHIFT,"phones"));
    searchBox.submit();

    assertThat(driver.getTitle())
            .isEqualTo("PHONES : ๋„ค์ด๋ฒ„ ํ†ตํ•ฉ๊ฒ€์ƒ‰");
}

 

 

 

 

 

 

clear()

clear๋Š” sendKeys() ๋ฉ”์„œ๋“œ์™€ ์‹คํ–‰ ๋Œ€์ƒ์ด ๊ฐ™๋‹ค. ํ…์ŠคํŠธ ๋ฐ•์Šค, ํ…์ŠคํŠธ ์˜์—ญ์ด๋‹ค.

 

ํ…์ŠคํŠธ ์˜์—ญ์— ์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด์„ ์ง€์šธ ์ˆ˜ ์žˆ๋‹ค.

 

public void elementClearExample() {
    WebElement searchBox = driver.findElement(By.name("query"));
	
    searchBox.sendKeys("phones");
    searchBox.clear();
}

 

 

 

 

 

 

submit()

submit์€ ํผ์ด๋‚˜ ํผ์—˜๋ฆฌ๋จผํŠธ ์•ˆ์ชฝ์˜ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์‹คํ–‰ํ•œ๋‹ค. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋กœ ํผ์„ ์ œ์ถœํ•˜๋ ค๋ฉด ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

submit์„ ์‚ฌ์šฉํ•  ์—˜๋ฆฌ๋จผํŠธ๋Š” ํ•ญ์ƒ ํผ ์—˜๋ฆฌ๋จผํŠธ ์•ˆ์— ์žˆ์–ด์•ผ ํ•œ๋‹ค.

ํผ ์•ˆ์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์—˜๋ฆฌ๋จผํŠธ์— ์‹คํ–‰ํ•˜๋ฉด NoSuchElementException์ด ๋ฐœ์ƒํ•œ๋‹ค.

 

๊ฒ€์ƒ‰ ํŽ˜์ด์ง€๋กœ ํผ์„ ์ œ์ถœํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์ž.

 

public void elementSubmitExample() {
    WebElement searchBox = driver.findElement(By.name("query"));

    searchBox.sendKeys("phones");
    searchBox.submit();
}

 

 

 

 


ํ•จ๊ป˜ ๋ณด๋ฉด ์ข‹์€ ๊ธ€

 

Selenium ์—˜๋ฆฌ๋จผํŠธ์˜ ์ƒํƒœ ํ™•์ธ, ํ™œ์„ฑํ™” ๋น„ํ™œ์„ฑํ™” ํด๋ฆญ ๊ฐ€๋Šฅ ์—ฌ๋ถ€

ํ˜„์žฌ ์›น์—˜๋ฆฌ๋จผํŠธ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ 3๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•œ๋‹ค. java์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฆ„์„ ๊ธฐ์ค€์œผ๋กœ ์ ์–ด๋‘์—ˆ๋‹ค. ์•„๋ž˜์˜ ์„ธ ๊ฐ€์ง€ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ๋ณด์ด๋Š”์ง€, ํด๋ฆญ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์ธ์ง€,

dev-yujin.tistory.com

 

 

Selenium ์—˜๋ฆฌ๋จผํŠธ ์†์„ฑ ๊ฐ€์ ธ์˜ค๊ธฐ HTML get ์†์„ฑ , java

ํ…Œ์ŠคํŠธ๋ฅผ ์›ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ์˜ ํŠน์ •ํ•œ Attribute, Text, Size, CssSelector ๋“ฑ์˜ ์†์„ฑ๋“ค์„ ์•Œ์•„์•ผํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด์ž. getAttribute() getAttribute() ๋ฉ”์„œ๋“œ๋Š” ๋ชจ๋“  ์›น ์—˜

dev-yujin.tistory.com