Вопрос по PhantomJS. Безрезультативный клик по элементу

csharp
phantomjs
selenium
Теги: #<Tag:0x00007f3d4455aea0> #<Tag:0x00007f3d4455ad10> #<Tag:0x00007f3d4455ab58>

(Никита Наумов) #1

Здравствуйте, использую PhantomJS совместно c Visual Studio на C#. Была поставлена задача авторизации Вконтакте, переходе на какой-нибудь паблик и подписаться на него. Все было отлично, до того как я начал нажимать на кнопку "Подписаться". Что только ни пробовал, и по Xpath, по Selector, по Id, через Javascript через querySelector, через всевозможные конструкции нажатия на кнопку. Никак. Просто никак. Кнопку находит всегда, ошибок никаких нет, но клик не происходит, то есть он может и есть, но нет результата. Бьюсь уже третий день подряд, не знаю, может быть это защита контакта от фантома. На chromedriver все работает, все кликает. На фантоме никак, в группы подписывается, а в паблики никак не хочет. Помогите пожалуйста. Прилагаю код

    IJavaScriptExecutor JS = Browser as IJavaScriptExecutor;
    Browser.Navigate().GoToUrl("https://vk.com/publicgames");
    Thread.Sleep(2000);
    JS.ExecuteScript("document.getElementById('#public_subscribe').click;");

(Lev Yarushin) #2

У PhantomJS часто бывают проблемы со сложными скриптами JS, а в VK их грузится очень много.
Рекомендую использовать headless режим у Chrome, раз

Если нет возможности использовать Chrome, попробуйте вот так:

JS.ExecuteScript("Public.subscribe(document.getElementById('#public_subscribe'));");

(Никита Наумов) #3

Очень долгое время искал как запускать в скрытом режиме хром, в российском сегменте об этом нигде не находил толковой информации, после загугливания слова headless и хрома разобрался.
Спасибо вам огромное! Решили мою проблему, с которой бился долгое время, еще раз спасибо вам)