Разделить нужную дату на день, месяц, годесли еще есть какие нибудь варианты предлагай )
да кликами всё выходило , после даже кликами не получаетсяРазделить нужную дату на день, месяц, год
Работа с датой и временем в Zennoposter с использованием методов C#
Определить какими действиями устанавливается нужное значение (может просто подстановка значения в какой то атрибут, а может через клики)
Выполнить эти действия.
Возможно xpath элемента там меняется, или чтобы элементы подгрузились, надо выполнить какое то действие или клик в поле, и потом искать эти элементы.да кликами всё выходило , после даже кликами не получается
Пробовал смотреть, читать инфу на сайте ZennoLab.Я может сейчас банальщину выдам... но вы не первый и не последний кто мучается с выбором селекта на майл.ру.
на форуме по этому ресурсу просто куча материала. есть готовый шаблон для клиентов, вроде как там все сделано по этим селектам.
поиск по форуму тоже выдает кучу инфы. вот ознакомьтесь с темой и отталкиваясь от нее можно дальше рыть https://zennolab.com/discussion/threads/vybor-opredelennogo-znachenija-v-vypadajuschem-spiske.78325/
HtmlElement he =instance.ActiveTab.FindElementByXPath("//div[@data-test-id='bdate-tooltip']//div[@class='nativeSelect-0-2-328 touch-0-2-326']//option[@class='option-0-2-336' ][@value='13']",0);
//HtmlElement he = instance.ActiveTab.FindElementByAttribute("div","class","base-0-2-106\\ first-0-2-112\\ focus-0-2-109","regexp",0);
//he.Click();
he.SetValue("//div[@data-test-id='bdate-tooltip']//div[@class='nativeSelect-0-2-328 touch-0-2-326']//option[@class='option-0-2-336' ][@value='13']","Full",true,true);
попробуйте расширение Chropath для поиска элементов и проверки XPATHПодскажите как и где подправить .
P.s. этот элемент находится нормально в гугле: //div[@data-test-id='bdate-tooltip']//div[@class='nativeSelect-0-2-328 touch-0-2-326']//option[@class='option-0-2-336' ][@value='13']
Вот так работало когда-тоПомогите с выбором дат на С# кодом .
Active.FindElementByXPath("//span[contains(text(), 'Day')]", 0).RiseEvent("click", "Full");
Active.FindElementByXPath("//span[@class='b-dropdown__list__item__text'][starts-with(text(), '"+ Day +"')]", 0).RiseEvent("click", "Full");
Thread.Sleep(555);
string [] Month = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
Active.FindElementByXPath("//span[contains(text(), 'Month')]", 0).RiseEvent("click", "Full");
Active.FindElementByXPath("//span[@class='b-dropdown__list__item__text'][starts-with(text(), '"+ Month[new Random().Next(0, Month.Count())] +"')]", 0).RiseEvent("click", "Full");
Thread.Sleep(333);
Active.FindElementByXPath("//span[contains(text(), 'Month')]", 0).RiseEvent("click", "Full");
Active.FindElementByXPath("//span[@class='b-dropdown__list__item__text'][starts-with(text(), '"+ Year +"')]", 0).RiseEvent("click", "Full");
Thread.Sleep(777);
Спасибо за код !Вот так работало когда-то
Надо только Xpath проверить.C#:Active.FindElementByXPath("//span[contains(text(), 'Day')]", 0).RiseEvent("click", "Full"); Active.FindElementByXPath("//span[@class='b-dropdown__list__item__text'][starts-with(text(), '"+ Day +"')]", 0).RiseEvent("click", "Full"); Thread.Sleep(555); string [] Month = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; Active.FindElementByXPath("//span[contains(text(), 'Month')]", 0).RiseEvent("click", "Full"); Active.FindElementByXPath("//span[@class='b-dropdown__list__item__text'][starts-with(text(), '"+ Month[new Random().Next(0, Month.Count())] +"')]", 0).RiseEvent("click", "Full"); Thread.Sleep(333); Active.FindElementByXPath("//span[contains(text(), 'Month')]", 0).RiseEvent("click", "Full"); Active.FindElementByXPath("//span[@class='b-dropdown__list__item__text'][starts-with(text(), '"+ Year +"')]", 0).RiseEvent("click", "Full"); Thread.Sleep(777);
Спасибо за код !
Один вопрос к какому типу данных мы привязывали пер. Active и Метод FindElementByXPath ?
Tab Active = instance.ActiveTab;
C#:Tab Active = instance.ActiveTab;
Tab Active = instance.ActiveTab;
Active.FindElementByXPath("//div[@class='select-0-2-320 daySelect-0-2-321']",0).RiseEvent("click","Full");
Active.FindElementByXPath("//option[contains(text(),'День')]",0).RiseEvent("click","Full");
Random r = new Random();
int Day = project.Profile.BornDay;
int month = project.Profile.BornMonth;
int year = r.Next(20, 40);
var daySelect = instance.ActiveTab.FindElementByXPath("//div[@data-test-id='bdate-tooltip']//div[contains(@class, 'control')]", 0);
if(daySelect.IsVoid) throw new Exception("no day");
var monthSelect = instance.ActiveTab.FindElementByXPath("//div[@data-test-id='bdate-tooltip']//div[contains(@class, 'control')]", 1);
if(monthSelect.IsVoid) throw new Exception("no month");
var yearSelect = instance.ActiveTab.FindElementByXPath("//div[@data-test-id='bdate-tooltip']//div[contains(@class, 'control')]", 2);
if(yearSelect.IsVoid) throw new Exception("no year");
instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(daySelect);
instance.ActiveTab.FullEmulationMouseClick("left", "click");
Thread.Sleep(r.Next(1000, 3000));
for(int i=0;i<Day;i++)
{
instance.ActiveTab.KeyEvent("DOWN", "press", "");
//Thread.Sleep(r.Next(200, 1000));
}
Thread.Sleep(r.Next(1000, 3000));
instance.ActiveTab.KeyEvent("Enter", "press", "");
Thread.Sleep(r.Next(1000, 3000));
//
instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(monthSelect);
instance.ActiveTab.FullEmulationMouseClick("left", "click");
Thread.Sleep(r.Next(1000, 3000));
for(int i=0;i<month;i++)
{
instance.ActiveTab.KeyEvent("DOWN", "press", "");
//Thread.Sleep(r.Next(200, 1000));
}
Thread.Sleep(r.Next(1000, 3000));
instance.ActiveTab.KeyEvent("Enter", "press", "");
Thread.Sleep(r.Next(1000, 3000));
//
instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(yearSelect);
instance.ActiveTab.FullEmulationMouseClick("left", "click");
Thread.Sleep(r.Next(1000, 3000));
for(int i=0;i<year;i++)
{
instance.ActiveTab.KeyEvent("DOWN", "press", "");
//Thread.Sleep(r.Next(200, 1000));
}
Thread.Sleep(r.Next(1000, 3000));
instance.ActiveTab.KeyEvent("Enter", "press", "");
Thread.Sleep(r.Next(1000, 3000));
Спасибо большое, все знчения выбираются!C#:Random r = new Random(); int Day = project.Profile.BornDay; int month = project.Profile.BornMonth; int year = r.Next(20, 40); var daySelect = instance.ActiveTab.FindElementByXPath("//div[@data-test-id='bdate-tooltip']//div[contains(@class, 'control')]", 0); if(daySelect.IsVoid) throw new Exception("no day"); var monthSelect = instance.ActiveTab.FindElementByXPath("//div[@data-test-id='bdate-tooltip']//div[contains(@class, 'control')]", 1); if(monthSelect.IsVoid) throw new Exception("no month"); var yearSelect = instance.ActiveTab.FindElementByXPath("//div[@data-test-id='bdate-tooltip']//div[contains(@class, 'control')]", 2); if(yearSelect.IsVoid) throw new Exception("no year"); instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(daySelect); instance.ActiveTab.FullEmulationMouseClick("left", "click"); Thread.Sleep(r.Next(1000, 3000)); for(int i=0;i<Day;i++) { instance.ActiveTab.KeyEvent("DOWN", "press", ""); //Thread.Sleep(r.Next(200, 1000)); } Thread.Sleep(r.Next(1000, 3000)); instance.ActiveTab.KeyEvent("Enter", "press", ""); Thread.Sleep(r.Next(1000, 3000)); // instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(monthSelect); instance.ActiveTab.FullEmulationMouseClick("left", "click"); Thread.Sleep(r.Next(1000, 3000)); for(int i=0;i<month;i++) { instance.ActiveTab.KeyEvent("DOWN", "press", ""); //Thread.Sleep(r.Next(200, 1000)); } Thread.Sleep(r.Next(1000, 3000)); instance.ActiveTab.KeyEvent("Enter", "press", ""); Thread.Sleep(r.Next(1000, 3000)); // instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(yearSelect); instance.ActiveTab.FullEmulationMouseClick("left", "click"); Thread.Sleep(r.Next(1000, 3000)); for(int i=0;i<year;i++) { instance.ActiveTab.KeyEvent("DOWN", "press", ""); //Thread.Sleep(r.Next(200, 1000)); } Thread.Sleep(r.Next(1000, 3000)); instance.ActiveTab.KeyEvent("Enter", "press", ""); Thread.Sleep(r.Next(1000, 3000));