Я использую Selenium для поиска элементов на странице Instagram.
Я успешно вошел в систему и загрузил профиль пользователя, однако не могу загрузить их следующее окно.
Когда вбраузер, если вы щелкнете по следующей ссылке, он загружает окно, которое вы можете прокрутить, чтобы увидеть следующий список.
При использовании селена я сделал следующее -
var opt = new PhantomJSOptions();
opt.AddAdditionalCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36");
var driver = new PhantomJSDriver(driverService, opt);
var element = driver.FindElementByName("username");
element.SendKeys(userName);
element = driver.FindElementByName("password");
element.SendKeys(passWord);
// find the login button and click it after credentials have been populated
element = driver.FindElement(By.XPath("//button[.='Log in']"));
element.Click();
// Now navigate to the users page
driver.Navigate().GoToUrl("https://www.instagram.com/" + accName);
На этом этапе IЯ успешно вошел в систему, на странице пользователей и могу найти следующую ссылку и щелкнуть ее, выполнив -
var element = driver.FindElementByPartialLinkText("following");
element.Click();
Однако при событии щелчка это странным образом возвращает меня на главную страницу входа в Instagram.
Еще одна вещь, которую я заметил, это то, что если вы находитесь в браузере и нажимаете на ссылку, URL-адрес в браузере обновляется до -
https://www.instagram.com/{username}/following/
Однако, если вы скопируете эту ссылку и вставите ее вновое окно и попытайтесь перейти к нему, оно не загружает следующее окно автоматически, как я ожидал, а просто переносит вас на главную страницу пользователей.
Я нашел примеры в python, где люди, кажется, успешно используютсобытие щелчка, например пример использования python .
Как этого добиться с помощью C #?Я не уверен, что Instagram полностью заблокировал это действие.
Я не уверен, что это важно, но я использую немного более старую версию Selenium Web Driver 3.8.0.Мне также пришло в голову, возможно, использовать ChromeDriver
вместо PhantomJS
, но я не уверен, что это будет иметь какое-либо значение.