Спасибо за ответ, но нет, именно мобильный свайп нуженНужен именно свайп? Или колесиком мыши тоже можно покрутить?)
Если можно, то вот код
instance.ActiveTab.FullEmulationMouseWheel(0, 2500);
Где 2500 это величина на сколько нужно прокрутить страницу
// Получаем копию текущих настроек тача.
TouchEmulationParameters touchParams = instance.ActiveTab.Touch.GetCopyOfTouchEmulationParameters();
// Устанавливаем минимальную скорость
// Данная настройка принимает значения от 1.0 до 2.0.
touchParams.Acceleration = 1.0F;
// Устанавливаем обновлённые настройки.
instance.ActiveTab.Touch.SetTouchEmulationParameters(touchParams);
// Делаем свайп между двумя координатами.
// Все точки должны находиться в области видимости.
// Первая пара чисел - координаты X, Y начала свайпа,
// вторая пара - координаты конца свайпа.
instance.ActiveTab.Touch.SwipeBetween(163, 400, 163, 200);
// Снова получаем копию текущих настроек.
touchParams = instance.ActiveTab.Touch.GetCopyOfTouchEmulationParameters();
// Теперь устанавливаем максимально возможную скорость - 2.0.
touchParams.Acceleration = 2.0F;
// Устанавливаем обновлённые настройки.
instance.ActiveTab.Touch.SetTouchEmulationParameters(touchParams);
// Делаем свайп между двумя координатами.
// Все точки должны находиться в области видимости.
instance.ActiveTab.Touch.SwipeBetween(163, 400, 163, 200);
Большое спасибо, а не подскажите как сюда вставить рандомные значения (от и до)С помощью стандартных экшенов, к сожалению, такое сделать нельзя (по крайней мере для версии 7.2.0.0).
Но, можно сделать с помощью C#
Постарался как можно подробней прокомментировать код.
C#:// Получаем копию текущих настроек тача. TouchEmulationParameters touchParams = instance.ActiveTab.Touch.GetCopyOfTouchEmulationParameters(); // Устанавливаем минимальную скорость // Данная настройка принимает значения от 1.0 до 2.0. touchParams.Acceleration = 1.0F; // Устанавливаем обновлённые настройки. instance.ActiveTab.Touch.SetTouchEmulationParameters(touchParams); // Делаем свайп между двумя координатами. // Все точки должны находиться в области видимости. // Первая пара чисел - координаты X, Y начала свайпа, // вторая пара - координаты конца свайпа. instance.ActiveTab.Touch.SwipeBetween(163, 400, 163, 200); // Снова получаем копию текущих настроек. touchParams = instance.ActiveTab.Touch.GetCopyOfTouchEmulationParameters(); // Теперь устанавливаем максимально возможную скорость - 2.0. touchParams.Acceleration = 2.0F; // Устанавливаем обновлённые настройки. instance.ActiveTab.Touch.SetTouchEmulationParameters(touchParams); // Делаем свайп между двумя координатами. // Все точки должны находиться в области видимости. instance.ActiveTab.Touch.SwipeBetween(163, 400, 163, 200);
Большое спасибо, а не подскажите как сюда вставить рандомные значения (от и до)
Random rnd = new Random();
instance.ActiveTab.Touch.SwipeBetween(rnd.Next(200, 300), 400, 163, 200);
Да, спасибо )так, не?C#:Random rnd = new Random(); instance.ActiveTab.Touch.SwipeBetween(rnd.Next(200, 300), 400, 163, 200);
Как вариант, через кубик рандом.Большое спасибо, а не подскажите как сюда вставить рандомные значения (от и до)
Можно как то, этим кодом до элемента просвайпить? Желательно XPathС помощью стандартных экшенов, к сожалению, такое сделать нельзя (по крайней мере для версии 7.2.0.0).
Но, можно сделать с помощью C#
Постарался как можно подробней прокомментировать код.
C#:// Получаем копию текущих настроек тача. TouchEmulationParameters touchParams = instance.ActiveTab.Touch.GetCopyOfTouchEmulationParameters(); // Устанавливаем минимальную скорость // Данная настройка принимает значения от 1.0 до 2.0. touchParams.Acceleration = 1.0F; // Устанавливаем обновлённые настройки. instance.ActiveTab.Touch.SetTouchEmulationParameters(touchParams); // Делаем свайп между двумя координатами. // Все точки должны находиться в области видимости. // Первая пара чисел - координаты X, Y начала свайпа, // вторая пара - координаты конца свайпа. instance.ActiveTab.Touch.SwipeBetween(163, 400, 163, 200); // Снова получаем копию текущих настроек. touchParams = instance.ActiveTab.Touch.GetCopyOfTouchEmulationParameters(); // Теперь устанавливаем максимально возможную скорость - 2.0. touchParams.Acceleration = 2.0F; // Устанавливаем обновлённые настройки. instance.ActiveTab.Touch.SetTouchEmulationParameters(touchParams); // Делаем свайп между двумя координатами. // Все точки должны находиться в области видимости. instance.ActiveTab.Touch.SwipeBetween(163, 400, 163, 200);
А обязательно этим кодом?Можно как то, этим кодом до элемента просвайпить? Желательно XPath
instance.ActiveTab.Touch.SwipeIntoView(HtmlElement he);
Но я просто спросил, зачем обязательно.А обязательно этим кодом?
Просто есть метод который свайпит из текущей области до указанного элемента
C#:instance.ActiveTab.Touch.SwipeIntoView(HtmlElement he);
стоит версия 7,3,0,0 .. и что то она не свайпит до элемента если он за пределами видимости . элемент сам находит точно .А обязательно этим кодом?
Просто есть метод который свайпит из текущей области до указанного элемента
C#:instance.ActiveTab.Touch.SwipeIntoView(HtmlElement he);
Только что проверил: открыл страницу этой темы, в качестве XPath использовалстоит версия 7,3,0,0 .. и что то она не свайпит до элемента если он за пределами видимости . элемент сам находит точно .
//a[text()='TazMan']
- экшен отработал нормально.Tab tab = instance.ActiveTab;
if ((tab.IsVoid) || (tab.IsNull)) return -1;
if (tab.IsBusy) tab.WaitDownloading();
tab.Navigate("https://touch.mail.ru/messages/", "");
if (tab.IsBusy) tab.WaitDownloading();
if (tab.IsVoid || tab.IsNull) return -1;
var attributes = ZennoPoster.Parser.ParseByXpath(tab, ZennoLab.InterfacesLibrary.Enums.Parser.SourceType.Dom, "//div[contains(@class,'messageline_unread')]//span[contains(@class, 'messageline__subject')]", "innerText", true).ToList();
attributes.Filter(ZennoLab.InterfacesLibrary.Enums.Parser.FilterType.None, "");
attributes.Range("all");
Random num = new Random();
int rnd = num.Next(0,attributes.Count);
string text = attributes.ElementAt(rnd);
attributes.RemoveAt(rnd);
project.SendInfoToLog(text);
HtmlElement he = instance.ActiveTab.FindElementByXPath("//div[contains(@class,'messageline_unread')]//span[contains(@class, 'messageline__subject')and contains(text(),'"+text+"')]/..",0);
if (he.IsVoid) return -1;
instance.ActiveTab.Touch.SwipeIntoView(he);
instance.ActiveTab.Touch.Touch(he);
У меня Ваш код отработал. Только я его немного подправил: добавил паузу, чтоб страница подгрузилась и выбирал не случайное непрочитанное письмо, а последнее.попробовал еще раз . работает только если элемент в окне показывается . за пределами - нет. хоть сам элемент и находит .
Tab tab = instance.ActiveTab;
if ((tab.IsVoid) || (tab.IsNull)) return -1;
if (tab.IsBusy) tab.WaitDownloading();
tab.Navigate("https://touch.mail.ru/messages/", "");
if (tab.IsBusy) tab.WaitDownloading();
Thread.Sleep(5000);
if (tab.IsVoid || tab.IsNull) return -1;
var attributes = ZennoPoster.Parser.ParseByXpath(tab, ZennoLab.InterfacesLibrary.Enums.Parser.SourceType.Dom, "//div[contains(@class,'messageline_unread')]//span[contains([USER=46442]class[/USER], 'messageline__subject')]", "innerText", true).ToList();
attributes.Filter(ZennoLab.InterfacesLibrary.Enums.Parser.FilterType.None, "");
attributes.Range("all");
/*Random num = new Random();
int rnd = num.Next(0,attributes.Count);*/
string text = attributes.Last();
//attributes.RemoveAt(rnd);
project.SendInfoToLog(text);
HtmlElement he = instance.ActiveTab.FindElementByXPath("//div[contains(@class,'messageline_unread')]//span[contains([USER=46442]class[/USER], 'messageline__subject')and contains(text(),'"+text+"')]/..",0);
if (he.IsVoid) return -1;
instance.ActiveTab.Touch.SwipeIntoView(he);
instance.ActiveTab.Touch.Touch(he);
Вы не нашли ответ как рандомизировать touchParams.Acceleration?Всем перивет. подскажите как рандомить touchParams.Acceleration
Теперь я знаю как выглядит АД))