www.youtube.com
-
- Сообщения: 42
- Зарегистрирован: 17 сен 2013, 14:44
www.youtube.com
Здравствуйте подскажите пожалуйста как закрепить свой же комментарий под своим же видео?? Обычно на комментарии необходимо навести мышкой и появится три точки, нажать по ним и нажать Закрепить. Но в хумане через фокусирование три точки не появляются.
$like= $element->get_number_by_inner_text("Понравилось автору", false);
echo $like;
$element->click_by_number( $like); с лайком проблем нет хотя надпись Понравилось автору не отображается на дисплее.
$like= $element->get_number_by_inner_text("Понравилось автору", false);
echo $like;
$element->click_by_number( $like); с лайком проблем нет хотя надпись Понравилось автору не отображается на дисплее.
- Вложения
-
- point.jpg (23.59 КБ) 1181 просмотр
Re: www.youtube.com
Если ваш комментарий первый в списке тогда можно сделать вот так
$div->get_by_id("action-menu")->get_child_by_attribute("id","button",true,true)->send_mouse_click(15,15); sleep(1); $anchor->click_by_inner_text("Закрепить",true); sleep(1); $element->click_by_inner_text("ЗАКРЕПИТЬ");если не первый тогда вам нужно сначала получить родительский элемент, в котором находится "action-menu", и далее уже получить "action-menu" и у него получить get_child_by_attribute("id","button",true,true)
-
- Сообщения: 42
- Зарегистрирован: 17 сен 2013, 14:44
Re: www.youtube.com
Ок спасибо большое!
-
- Сообщения: 42
- Зарегистрирован: 17 сен 2013, 14:44
Re: www.youtube.com
Еще раз спасибо, а подскажите пожалуйста как вы получаете такую конструкцию $div->get_by_id("action-menu")->get_child_by_attribute("id","button",true,true)->send_mouse_click(15,15); в самом хумане правой кнопкой кликаете на три точки и меню выбираете?? у себя такого не увидел...приведите плиз картинки или дайте ссылку как это делаетеSupport писал(а): ↑18 апр 2020, 15:18Если ваш комментарий первый в списке тогда можно сделать вот так
$div->get_by_id("action-menu")->get_child_by_attribute("id","button",true,true)->send_mouse_click(15,15); sleep(1); $anchor->click_by_inner_text("Закрепить",true); sleep(1); $element->click_by_inner_text("ЗАКРЕПИТЬ");если не первый тогда вам нужно сначала получить родительский элемент, в котором находится "action-menu", и далее уже получить "action-menu" и у него получить get_child_by_attribute("id","button",true,true)
Re: www.youtube.com
Делаю это через выбор в дереве. Так как элемент из трёх точек повторяющийся, и может встречаться и выше комментария, то мы находим в дереве родительский элемент.
Нажимаем на три точки правой кнопкой мыши и видим в дереве следующее:
и тут же в дереве находим его родительский элемент. ПОтом получаем его и сразу же у него получаем нужный нам с помощью функционала интерфейс элемента .
Мы даже получаем не сам выбранный элемент, а тот что над ним button [id=button]. Так как мы используем работу с мышью, а не команду клика по элементу, то мы можем использовать элемент, который находится в том же месте. События клика будут выполняться, как будто туда кликнули мышью, и достигать всех нужных элементов.
Это выглядит вот так:
И потом на глаз прикидывает координаты для команды send_mouse_click(15,15); так что бы они попадали в размер кнопки. И в итоге получаем такую конструкцию
получить action-menu у него получить дочерний элемент "id","button" и в этот дочерний элемент отправить событие клика мыши в координатах 15,15 в рамках самого элемента.
Получаем :
Нажимаем на три точки правой кнопкой мыши и видим в дереве следующее:
и тут же в дереве находим его родительский элемент. ПОтом получаем его и сразу же у него получаем нужный нам с помощью функционала интерфейс элемента .
Мы даже получаем не сам выбранный элемент, а тот что над ним button [id=button]. Так как мы используем работу с мышью, а не команду клика по элементу, то мы можем использовать элемент, который находится в том же месте. События клика будут выполняться, как будто туда кликнули мышью, и достигать всех нужных элементов.
Это выглядит вот так:
И потом на глаз прикидывает координаты для команды send_mouse_click(15,15); так что бы они попадали в размер кнопки. И в итоге получаем такую конструкцию
получить action-menu у него получить дочерний элемент "id","button" и в этот дочерний элемент отправить событие клика мыши в координатах 15,15 в рамках самого элемента.
Получаем :
$div->get_by_id("action-menu")->get_child_by_attribute("id","button",true,true)->send_mouse_click(15,15);Этот же код может быть представлен в следующем виде:
// получить action-menu $dv = $div->get_by_id("action-menu"); // получить у него дочерний "id","button" $bt = $dv->get_child_by_attribute("id","button",true,true); // кликнуть мышью по найденному дочернему $bt->send_mouse_click(15,15);
-
- Сообщения: 42
- Зарегистрирован: 17 сен 2013, 14:44
Re: www.youtube.com
Еще раз спасибо за подробное объяснение.
Может кому будет полезным, сделал тоже самое через контекстное меню самого браузера Хрома. Курсор мыши над элементом -> контекстное меню (правая кнопка мыши)-> Отобразить код.
Может у меня так, но через браузер мне кажется удобнее реализация, т.к. наводишь на код и элементы страницы и они сразу подсвечиваются.
Может кому будет полезным, сделал тоже самое через контекстное меню самого браузера Хрома. Курсор мыши над элементом -> контекстное меню (правая кнопка мыши)-> Отобразить код.
Может у меня так, но через браузер мне кажется удобнее реализация, т.к. наводишь на код и элементы страницы и они сразу подсвечиваются.
-
- Сообщения: 42
- Зарегистрирован: 17 сен 2013, 14:44
Re: www.youtube.com
А как тогда на ДИЗЛАЙК нажать, с лайком проблем нет: $div->get_by_id("menu-container")->get_child_by_attribute("id","button",true,true)->send_mouse_click(15,15);
я так понимаю нужен уникальный id.
я так понимаю нужен уникальный id.
- Вложения
-
- dizlaik.jpg (7.69 КБ) 1142 просмотра
Re: www.youtube.com
Тут можно проще сделать:
$btn->click_by_attribute("aria-label", "Видео не понравилось вам и ещё", false);
-
- Сообщения: 42
- Зарегистрирован: 17 сен 2013, 14:44
-
- Сообщения: 42
- Зарегистрирован: 17 сен 2013, 14:44
Re: www.youtube.com
Подскажите плиз как выбрать заданное число
В запланированной публикации на Ютуб??
Например установить 1 мая.
Даты все время меняются, и как допустим находясь в календаре в апреле запланировать публикацию видео на 5 июня 2020г. ?
В запланированной публикации на Ютуб??
Например установить 1 мая.
Даты все время меняются, и как допустим находясь в календаре в апреле запланировать публикацию видео на 5 июня 2020г. ?
- Вложения
-
- add.jpg (58.94 КБ) 1118 просмотров
Re: www.youtube.com
// получаем текущую дату echo $date = date("M j, Y"); // кликнуть по сегоднешней дате $span->click_by_inner_text($date); // очищаем старую дату $input->set_value_by_number(2, ""); // задаём новую дату $input->send_keyboard_input_by_number(2,"Jun 5, 2020\n", "20:40");
Можно так. Единственное можете попробовать input не через номер, а скажем через class получать.
-
- Сообщения: 42
- Зарегистрирован: 17 сен 2013, 14:44
Re: www.youtube.com
клик у меня так работает $span->click_by_inner_text('апр',false);Support писал(а): ↑28 апр 2020, 13:31// получаем текущую дату echo $date = date("M j, Y"); // кликнуть по сегоднешней дате $span->click_by_inner_text($date); // очищаем старую дату $input->set_value_by_number(2, ""); // задаём новую дату $input->send_keyboard_input_by_number(2,"Jun 5, 2020\n", "20:40");
Можно так. Единственное можете попробовать input не через номер, а скажем через class получать.
, а так не работает // кликнуть по сегоднешней дате
$span->click_by_inner_text($date);
// очищаем старую дату
$input->set_value_by_number(2, ""); ----2 этот номер рандомно подставялется ютубом
-
- Сообщения: 42
- Зарегистрирован: 17 сен 2013, 14:44
Re: www.youtube.com
Спасибо реализовал через get_all_numbers_by_inner_text
-
- Сообщения: 42
- Зарегистрирован: 17 сен 2013, 14:44
Re: www.youtube.com
Support писал(а): ↑18 апр 2020, 20:01Делаю это через выбор в дереве. Так как элемент из трёх точек повторяющийся, и может встречаться и выше комментария, то мы находим в дереве родительский элемент.
Нажимаем на три точки правой кнопкой мыши и видим в дереве следующее:
tree.jpg
и тут же в дереве находим его родительский элемент. ПОтом получаем его и сразу же у него получаем нужный нам с помощью функционала интерфейс элемента .
Мы даже получаем не сам выбранный элемент, а тот что над ним button [id=button]. Так как мы используем работу с мышью, а не команду клика по элементу, то мы можем использовать элемент, который находится в том же месте. События клика будут выполняться, как будто туда кликнули мышью, и достигать всех нужных элементов.
Это выглядит вот так:
tree1.jpg
И потом на глаз прикидывает координаты для команды send_mouse_click(15,15); так что бы они попадали в размер кнопки. И в итоге получаем такую конструкцию
получить action-menu у него получить дочерний элемент "id","button" и в этот дочерний элемент отправить событие клика мыши в координатах 15,15 в рамках самого элемента.
Получаем :$div->get_by_id("action-menu")->get_child_by_attribute("id","button",true,true)->send_mouse_click(15,15);Этот же код может быть представлен в следующем виде:
// получить action-menu $dv = $div->get_by_id("action-menu"); // получить у него дочерний "id","button" $bt = $dv->get_child_by_attribute("id","button",true,true); // кликнуть мышью по найденному дочернему $bt->send_mouse_click(15,15);
А КАК ТОГДА БЫТЬ с отсылкой клика в окно браузера хумана>send_mouse_click(15,15);
Если его окошко уменьшить, тогда координаты сместятся и верстка сайта подстроится под новый размер в браузере??
У меня клик не выходит по заданной области если я уменьшаю окно в Ютубе, т.к. он ужимает свою версию внутри бразера, так сказать адаптивную верстку под размеры.
Так происходит если сжимать окон в минимум по оси Y