[์ ๋ ๋์/Selenium, C#] ChromeDriver ๋ฒ์ ์๋ ์ ๋ฐ์ดํธ ์ ์ฉ ๋ฐฉ๋ฒ
ํฌ๋กฌ ๋๋ผ์ด๋ฒ ์ ๋ฐ์ดํธ
ํฌ๋กฌ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ์ผ๋ก ํฌ๋กค๋ง ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ์ ํ์ฌ ์์คํ ์ ์ค์น๋์ด ์๋ ํฌ๋กฌ ๋ธ๋ผ์ฐ์ ์ ๋ฒ์ ๊ณผ, ์คํ๋๋ ํ๋ก๊ทธ๋จ์ ๋ฒ์ ์ ๋ง์ถ๋ ์์ ์ด ์ฐธ ๊ท์ฐฎ์์ต๋๋ค.
๋ง์ฝ, ๋ฒ์ ์ด ๋ง์ง ์์ผ๋ฉด ๋๋ผ์ด๋ฒ ๋ฒ์ ์ด ์ผ์นํ์ง ์์ ๋์ํ๋ค๋ ์๋ฌ ๋ฉ์์ง๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ทธ๋์ ์ด๋ฅผ ๋์ฒํ๋ ๋ฐฉ๋ฒ์ ์๋์ ํฌ์คํ ์ ์ฌ๋ฆฐ ์ ์ด ์์ต๋๋ค.
[์ ๋ ๋์/Selenium, C#] ChromeDriver ๋ฒ์ ์๋ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ
์ต๊ทผ ๋ค์ด ์ด ๋ฐฉ๋ฒ๋ ์ ์ํตํ๋ ๊ฒ์ ํ์ธํ๋๋ฐ์. ํฌ๋กฌ ๋ธ๋ผ์ฐ์ ๋ฒ์ ์ด ์ต์ ์ด์ง๋ง, ํฌ๋กฌ ๋๋ผ์ด๋ฒ ๋ค์ด๋ก๋ ํ์ด์ง์๋ ๋ฒ์ ๊ณผ ์ผ์นํ๋ ํ์ผ์ด ์์ด ์ ๋๋ก ๋์ํ์ง ์์์ต๋๋ค.
์ฌ์ค, ์ด๋ณด๋ค ๋ ๊ฐํธํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ํ๋ก๊ทธ๋จ ์คํ ์ ์๋์ผ๋ก ํฌ๋กฌ ๋๋ผ์ด๋ฒ๋ฅผ ์ ๋ฐ์ดํธํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ทธ๋ผ ๋ ์ด์ ๊ท์ฐฎ๊ฒ ์ง์ ๋ค์ด๋ก๋ํ ํ์๊ฐ ์์ง์.
๋ณธ๋ฌธ์์ ์ฐจ๊ทผ์ฐจ๊ทผ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
๋ฐ๋ผ ํ๊ธฐ
1. C# ํ๋ก์ ํธ ์์ฑํ๊ธฐ
์ฝ์์ด๋ WinForm์ด๋ ์๊ด ์์ต๋๋ค. ์ฌ์ฉํ๊ธฐ ํธํ ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค. ์ ๋ WinForm ํ๋ก์ ํธ๋ฅผ ์์ฑํ์ต๋๋ค.
2. NuGet์์ Selenium ํจํค์ง ์ค์นํ๊ธฐ
ํ๋ก์ ํธ ์์ฑ ํ Visual Studio ์๋จ ๋ฉ๋ด ์ค ๋๊ตฌ > NuGet ํจํค์ง ๊ด๋ฆฌ์ > ์๋ฃจ์ ์ฉ NuGet ํจํค์ง ๊ด๋ฆฌ ๋ฉ๋ด๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ฐพ์๋ณด๊ธฐ ํญ์์ ๊ฒ์๋์ selenium์ ๊ฒ์ํฉ๋๋ค.
๊ฒ์ ๊ฒฐ๊ณผ์์ Selenium.WebDriver์ Selenium.Support ํจํค์ง๋ฅผ ํ๋ก์ ํธ์ ์ค์นํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ๊ฒ์ ๋์ web driver manager๋ฅผ ๊ฒ์ํฉ๋๋ค.
WebDriverManager ํจํค์ง๋ฅผ ํ๋ก์ ํธ์ ์ค์นํฉ๋๋ค.
๋ง์ฝ, Selenium.WeDriver.ChromeDriver ํจํค์ง๋ฅผ ๊ฐ์ด ์ค์นํ๋ฉด ๋๋ผ์ด๋ฒ ์ถฉ๋์ด ๋ฐ์ํด ํฌ๋กฌ ๋๋ผ์ด๋ฒ๊ฐ ์ผ์นํ์ง ์๋๋ค๋ ์ค๋ฅ๊ฐ ๊ณ์ํด์ ๋ฐ์ํฉ๋๋ค.
3. ์ฝ๋ ๊ตฌํ
๊ธฐ๋ณธ์ ์ธ ์ฝ๋ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ์ต๋๋ค.
//๊ธฐ๋ณธ namespace ์๋ต
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using WebDriverManager;
using WebDriverManager.Helpers;
using WebDriverManager.DriverConfigs.Impl;
namespace ExamSelenium
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
try
{
ChromeDriverService driverService = null;
ChromeOptions options = null;
ChromeDriver driver = null;
//ํฌ๋กฌ ๋๋ผ์ด๋ฒ ์๋ ์
๋ฐ์ดํธ
new DriverManager().SetUpDriver(new ChromeConfig(), VersionResolveStrategy.MatchingBrowser);
driverService = ChromeDriverService.CreateDefaultService();
driverService.HideCommandPromptWindow = true;
options = new ChromeOptions();
options.AddArgument("disable-gpu");
driver = new ChromeDriver(driverService, options);
driver.Navigate().GoToUrl("https://www.naver.com");
}
catch(Exception exc)
{
MessageBox.Show(exc.Message);
}
}
}
}
Chrome ๊ด๋ จ ๊ฐ์ฒด๋ ์์ ์ ์ค๋ช
ํ ๋ด์ฉ๊ณผ ๋์ผํ๊ณ , 24๋ฒ์งธ ๋ผ์ธ์ DriverManager()
๋ถ๋ถ์ด ํต์ฌ์
๋๋ค. ์ด ์ฝ๋๊ฐ ์คํ๋๋ฉด ํ์ฌ ์์คํ
์ ์ค์น๋์ด ์๋ ๋ธ๋ผ์ฐ์ ์ ์ผ์นํ๋ ํฌ๋กฌ ๋๋ผ์ด๋ฒ๊ฐ ์๋์ผ๋ก ์ค๋น๋ฉ๋๋ค.
ํฌ๋กฌ ๋๋ผ์ด๋ฒ ์ ๋ฐ์ดํธ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
//ํน์ ๋ฒ์
new DriverManager().SetUpDriver(new ChromeConfig(), "2.25")
//ํน์ ์ํคํ
์ฒ
new DriverManager().SetUpDriver(new ChromeConfig(), "Latest", Architecture.X32)
//ํน์ ๋ฒ์ ๋ฐ ํน์ ์ํคํ
์ฒ
new DriverManager().SetUpDriver(new ChromeConfig(), "2.25", Architecture.X64)
//๋ธ๋ผ์ฐ์ ์ ์ผ์นํ๋ ๋ฒ์ (Chrome, Edge, Firefox, Internet Explorer๋ง ํด๋น):
new DriverManager().SetUpDriver(new ChromeConfig(), VersionResolveStrategy.MatchingBrowser);
๊ทธ ์ธ WebDriverManager์ ๋ํด ๋ ๊ถ๊ธํ๋ค๋ฉด ์๋ GitHub ํ์ด์ง๋ฅผ ์ฐธ๊ณ ํ์ธ์.
'Programming > Selenium' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[์ ๋ ๋์/Selenium, C#] ChromeDriver ๋ฒ์ ์๋ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ
[์ ๋ ๋์/Selenium, C#] ChromeDriver ๋ฒ์ ์๋ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ
2021.04.28 -
[์ ๋ ๋์/Selenium, C#] ์ฌ๋ฌ ํ์ผ ์ ๋ก๋ํ๊ธฐ
[์ ๋ ๋์/Selenium, C#] ์ฌ๋ฌ ํ์ผ ์ ๋ก๋ํ๊ธฐ
2021.04.02 -
[์ ๋ ๋์/Selenium, C#] ์ ํญ ์์ฑ ๋ฐ ๋ซ๋ ๋ฐฉ๋ฒ (์์ ํฌํจ)
[์ ๋ ๋์/Selenium, C#] ์ ํญ ์์ฑ ๋ฐ ๋ซ๋ ๋ฐฉ๋ฒ (์์ ํฌํจ)
2020.09.12 -
[์ ๋ ๋์/Selenium, C#] headless ์ต์ ์์ ํ์ผ ๋ค์ด๋ก๋ ๊ฐ๋ฅํ๋๋ก ์ค์ ํ๊ธฐ
[์ ๋ ๋์/Selenium, C#] headless ์ต์ ์์ ํ์ผ ๋ค์ด๋ก๋ ๊ฐ๋ฅํ๋๋ก ์ค์ ํ๊ธฐ
2020.08.28