๐ฅ Selenium์์ Firefox ํ๋กํ์ ๋ง๋ค๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
Firefox ํ๋กํ์ด ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์๋ํ์์ ์ฌ์ฉํ ์ ์๋ ๊ณ ์ ํ ์๋ํ ํ๋กํ์ ์์ฑํฉ๋๋ค.
๋ค์ด๋ก๋ ํด๋ ๋ฐ ๊ธฐํ ํญ๋ชฉ์ด ์บ์๋๊ฑฐ๋ ๋์ผํ๋๋ก ๋์ผํ ํ๋กํ์ด ์ฌ์ฉ๋ ๋๋ง๋ค.
Firefox ํ๋กํ์์ ํญ์ ์ฌ์ฉํ ์ ์๋ ์ฌ์ฉ์ ์ง์ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ค์นํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๊ธฐ๋ณธ ์ธ์ฆ ํ์ ์ ์๋์ผ๋ก ์ฐํํ ์ ์๋ ๋ค์ค ํจ์ค ์ ๋์จ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
Firefox ํ๋กํ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
Firefox๋ฅผ ์ด๊ณ "about:profiles"URL์ ์ฝ๋๋ค.
์ ํ๋กํ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํด๋น ํ๋กํ์ ์ด๊ณ ์ด ๋ฐ๋ชจ๊ฐ ์๋ํ๋ ค๋ฉด ๊ด๊ณ ์ฐจ๋จ๊ธฐ, ๋ฉํฐํจ์ค์ ๊ฐ์ ์ข์ํ๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ค์นํ์ธ์.
์ ๋ ๋์์ Firefox ํ๋กํ ์ค์
Firefox ํ๋กํ์ ๋ค์ด๋ก๋ ํด๋ ๋ฐ ๊ธฐํ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ฌ์ฉ์ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
ํ๋กํ์ ์ฌ์ฉํ์ฌ ์ ๋ ๋์์ ์ผ๋ถ ๋ค์ด๋ก๋ ๊ธฐ๋ฅ์ ํ ์คํธํ๋ ๊ฒฝ์ฐ ๋ค์ด๋ก๋ ํด๋๋ฅผ ์ฌ์ฉ์ ์ง์ ํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ํ์ผ ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ํ์ธํ๋ ๋ฐ ์ ์ฉํ๋ฉฐ, ๋งค๋ฒ ํ๋กํ์ ํ๋ ์ฝ๋ฉ๋ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Firefox ํ๋กํ ์ต์ ์ผ๋ก ํ๋กํ์ ์คํํ ๋๋ง๋ค ํ๋กํ์์ ๋ค์ด๋ก๋ ๋ฐ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ฌ์ฉ์ ์ ์ํ ์ ์์ต๋๋ค.
๋ค์ค ํจ์ค ํ์ฅ์ด ์๋ ํ์ด์ดํญ์ค ํ๋กํ
Selenium์์ Firefox ํ๋กํ์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ์ธ์ฆ์ ์ฐํํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
๊ธฐ๋ณธ ์ธ์ฆ ํ์ ์ ์ด์ด์ผ ํ๋ ํ ์คํธ ์ผ์ด์ค๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๊ธฐ๋ณธ ์ธ์ฆ์ ๋ฌธ์ ๋ ํ์ ์ด๋ฉฐ Selenium์์ ์๋ํํ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ต๋ค๋ ๊ฒ์ ๋๋ค.
์ฌ๊ธฐ์ driver.switchTo() ๋ฉ์๋๋ฅผ ์ง์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด์ ์ด๋ฌํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฐฉ๋ฒ 1:
https://username:[email protected]์ผ๋ก URL์ ์ฌ๋ ์ฌ์ด ๋ฐฉ๋ฒ์ด๋ฏ๋ก ๋ฐ๋ชจ URL์ https://admin:[email protected]/basic_auth์ด ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ์๋ํ์ง ์๋ ์ผ๋ถ ์น์ฌ์ดํธ์ ๊ฒฝ์ฐ ํ์ ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ํน์ ์ ๋์จ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ณ ๋ง๊ฒ๋ ์ฌ์ฉ์ ์ด๋ฆ, ๋น๋ฐ๋ฒํธ ๋ฐ URL์ ์ ์ฅํ ์ ์๋ ๋ฉํฐ ํจ์ค์ ๊ฐ์ ํ๋ฌ๊ทธ์ธ์ด ์์ด ๋ชจ๋ ์ธ๋ถ ์ ๋ณด๋ฅผ ์๋์ผ๋ก ์ ๋ ฅํฉ๋๋ค.
๋ฐฉ๋ฒ 2:
๊ทธ๋์ ๋จ๊ณ๋
๋ค์ค ํจ์ค ์ถ๊ฐ ๊ธฐ๋ฅ๊ณผ ์ธ๋ถ ์ ๋ณด ๋๋ ์๊ฒฉ ์ฆ๋ช ์ด ํฌํจ๋ URL์ ์ฌ์ฉํ์ฌ ํ๋กํ์ ์์ฑํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
๋์ผํ ํ๋กํ์์ URL์ ์ฝ๋๋ค.
๋ฉํฐ ํจ์ค๋ ์๋์ผ๋ก ์๊ฒฉ ์ฆ๋ช ์ ์ ๋ ฅํ๊ณ ํฌํธ์ ๋ก๊ทธ์ธํฉ๋๋ค.
ํํ์ด์ง ํ์ธ
package com.test1;
import org.openqa.selenium.Capabilities;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.ProfilesIni;
public class ProfileDemo {
public static void main(String[] args) {
ProfilesIni settings = new ProfilesIni();
FirefoxProfile profile = settings.getProfile("thetestingacademy");
FirefoxOptions firefoxOptions = new FirefoxOptions();
firefoxOptions.setProfile(profile);
WebDriver driver = new FirefoxDriver(firefoxOptions);
driver.get("https://the-internet.herokuapp.com/basic_auth");
System.out.println(driver.getPageSource());
}
}
์๋ํ RockStar๊ฐ ๋๊ณ ์ถ์ผ์ญ๋๊น?
https://learn.thetestingacademy.com/
โ Postman์ ์ฌ์ฉํ API ํ ์คํ -
https://www.learnapitesting.com
โ ๋ผ์ด๋ธ ํ๋ก์ ํธ๊ฐ ํฌํจ๋ Cypress ํํ ๋ฆฌ์ผ -
https://cypresstutorial.com
โ Python์ ์ฌ์ฉํ REST API ํ ์คํธ -
https://masterapitesting.com
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ฅ Selenium์์ Firefox ํ๋กํ์ ๋ง๋ค๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/promode/how-to-create-use-firefox-profile-in-selenium-3c30ํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค