Как загрузить картинку на сайт через Selenium Chrome
Хочу сделать авто загрузку скриншотов на reddit, но столкнулся с проблемой, что стандартный метод загрузки изображения на сайт - SendKeys, не работает. Мой код:
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
List<string> screenshots = Directory.GetFiles("C:\\Screenshots").ToList();
int index = 0;
int length = screenshots.Count;
IWebDriver driver = new ChromeDriver(@"C:\");
driver.Manage().Window.Maximize();
driver.Navigate().GoToUrl("https://www.reddit.com/r/2b2tcarchive/submit");
File.ReadAllLines("C:\\Cookies.txt").ToList().ForEach(x => driver.Manage().Cookies.AddCookie(new Cookie(x.Split("|")[0], x.Split("|")[1])));
for(; index < length; index += 1)
{
driver.Navigate().GoToUrl("https://www.reddit.com/r/2b2tcarchive/submit");
Thread.Sleep(10000);
driver.FindElement(By.XPath(".//*[@id='SHORTCUT_FOCUSABLE_DIV']/div[2]/div/div/div/div[2]/div[3]/div[1]/div[2]/div[3]/div[1]/div/button[2]")).Click();
Thread.Sleep(1000);
IWebElement upload = driver.FindElement(By.XPath(".//*[@id='SHORTCUT_FOCUSABLE_DIV']/div[2]/div/div/div/div[2]/div[3]/div[1]/div[2]/div[3]/div[2]/div[2]/div/div/div/p/button"));
upload.SendKeys(screenshots[index]);
Thread.Sleep(5000);
driver.FindElement(By.XPath(".//*[@id='SHORTCUT_FOCUSABLE_DIV']/div[2]/div/div/div/div[2]/div[3]/div[1]/div[2]/div[3]/div[3]/div[2]/div/div[1]/button[1]")).Click();
}

Чтобы получить куки:
File.WriteAllLines("C:\Cookies.txt", driver.Manage().Cookies.AllCookies.Select(x => x.Name + "|" + x.Value));