У нас есть сторонний поставщик, который должен предоставлять нам данные в реальном времени, но не имеет никаких интерфейсов данных. Решение заключается в отражении данных веб-сайта в нашей системе. Их сайт построен с использованием Ionic.
Я уже создал функцию для зеркального отображения данных. Моя проблема на данный момент заключается в том, что текущие данные находятся на другой странице, но URL-адрес не меняет только источник страницы. В настоящее время я не могу получить данные в реальном времени, так как мне приходится нажимать кнопку Live Data на домашней странице.
Я использовал PhantomJS, чтобы попытаться программно нажать на кнопку, но по какой-то причине он не хочет работать. Проверена функциональность с домашней страницы Google и работает правильно.
Кто-нибудь знает, что я делаю неправильно или отсутствует? Я пробовал className, tagName и большинство элементов в dom, но все равно не повезло.
Вот источник сайта и мой код PhantomJS.
PS Сайт представляет собой локальный интерфейс устройства, и я использую сохраненный HTML-код для тестирования.
Веб-сайт Button Source
<button class="item item-block item-md" ion-item="" menuclose=""><ion-icon color="primary" item-left="" role="img" class="icon icon-md icon-md-primary ion-md-home item-icon" aria-label="home"></ion-icon><div class="item-inner"><div class="input-wrapper"><!----><ion-label class="label label-md">
Home
</ion-label></div><!----></div><div class="button-effect"></div></button><button class="item item-block item-md" ion-item="" menuclose=""><ion-icon color="primary" item-left="" role="img" class="icon icon-md icon-md-primary ion-md-list item-icon" aria-label="list"></ion-icon><div class="item-inner"><div class="input-wrapper"><!----><ion-label class="label label-md">
Live Data
</ion-label></div><!----></div><div class="button-effect"></div></button><button class="item item-block item-md" ion-item="" menuclose=""><ion-icon color="primary" item-left="" role="img" class="icon icon-md icon-md-primary ion-md-analytics item-icon" aria-label="analytics"></ion-icon><div class="item-inner"><div class="input-wrapper">
C # PhantomJS Код:
_driver.Manage().Window.Size = new Size(1000, 800);
_driver.Navigate().GoToUrl(url);
Thread.Sleep(3000);
//get the source of the page
Console.Write(_driver.PageSource);
//fully navigate the dom
var pathElements = _driver.FindElementsByTagName("button");
pathElements[1].Click();