[Scraping] WebDriver 충돌 해결
Scraping 개발하려면, Nuget Pakage 관리에서 Selenium 관련 Pakage 를 받아야합니다.
관련 Pakage 를 받고, 테스트 코드를 작성..
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
// Selenium
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Chromium;
using OpenQA.Selenium.Support.UI;
namespace ScrapingWpf
{
    public partial class MainWindow : Window
    {
        private static IWebDriver driver;
        public MainWindow()
        {
            InitializeComponent();
            ChromiumNetworkConditions conditions = new ChromiumNetworkConditions();
            driver = new ChromeDriver();
            driver.Navigate().GoToUrl("https://www.reverbnation.com/");
            var discoverButton = driver.FindElement(By.Id("menu-item-discover"));
            discoverButton.Click();
            var collections = FindElements(By.ClassName("card__contents"));
            foreach (var collection in collections)
            {
                Console.WriteLine(collection.Text);
            }
        }
        static IReadOnlyCollection<IWebElement> FindElements(By by)
        {
            Stopwatch w = Stopwatch.StartNew();
            while (w.ElapsedMilliseconds < 10 * 1000)
            {
                var elements = driver.FindElements(by);
                if (elements.Count > 0) { return elements; }
                Thread.Sleep(10);
            }
            //return null;
            return new ReadOnlyCollection<IWebElement>(new List<IWebElement>());
        }
    }
}
Build 를 진행하는데,
session not created: This version of ChromeDriver only supports Chrome version 85
라는 오류 메시지를 받았습니다.

나는 97 버전인데 ㅎㅎㅎ,,
해당 버전에 맞는 chromedriver.exe 를 다운받으라는 해결법이 있으나, 다운그레이드를 싫어하.............
어쩔 수 없이, git 커밋한걸 돌릴려고 git diff 를 찍어봤는데, 왠걸! ㅎㅎ
운 좋게 발견했습니다.

해결
Pakage 에 포함된 Chrome 버전 설정이 중복된 것으로 보입니다. 그래서 최신걸 남겨두고 삭제했습니다.
- Chrome 97.0.4692.7100

 

- Chrome 85.0.0
 


목적에 맞게 Nuget Pakage 를 추가하는 습관을 들이는게..
Author And Source
이 문제에 관하여([Scraping] WebDriver 충돌 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@eeejh/Scraping-WebDriver-충돌-해결저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)