Нужна помощь при нажатии на элемент `` `<a href="">` ``, который не имеет идентификаторов - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь написать сценарий, который комментирует определенный пост, затем нажимает кнопку «Избранное в этом сообщении», но для этой кнопки не назначен какой-либо идентификатор, как бы я щелкнул по этой кнопке?

Я пробовал JQuery, но он не работал.

Я пытаюсь использовать это на FurAffinity , чтобы автоматически щелкнуть элемент <a> без каких-либо идентификаторов. ,Когда я проверяю элемент с помощью dev. В опциях на Google написано, что имя существует, оно просто пустое, поэтому я не могу выбрать его с помощью JQuery.

Пример фрагмента кода сайта. Я хотел бы нажать на текст «+ Добавить в избранное», используя отдельную кнопку, которая появляется в другом месте на странице с помощью Tampermonkey.

Я не знаю, как найти элемент, используя толькоInnerHTML этого. У тега <a> нет имени, идентификатора или класса, только ссылка и текст внутри.

<div class="alt1 actions aligncenter" style="margin-top: 8px;">
                
                                    <b><a href="/fav/33151503/?key=37dfe6a83f38f48790a6551921ddb13850e2c6a0">+Add to Favorites</a></b> |
                                <b><a href="//d.facdn.net/art/legacy2988/stories/1569252982/1569252982.legacy2988_i’m_not_sure_atm.txt">Download</a></b> |
                <b><a href="/full/33151503/">Full View</a></b>

                
                                    | <b><a href="/newpm/legacy2988/">Send note</a></b>
                
                
                <div>Submission &copy; 2019 Legacy2988</div>
            </div>

Ответы [ 2 ]

0 голосов
/ 31 октября 2019

Исходя из вашего примера кода, вы хотите найти этот элемент:

<a href="/fav/33151503/?key=37dfe6a83f38f48790a6551921ddb13850e2c6a0">+Add to Favorites</a>

Предполагается, что существует только 1 такая ссылка, и она всегда имеет /fav/ в href

document.querySelector('a[href*="/fav/"]').click();

Выше можно доработать, если необходимо, но это должно дать вам представление.

0 голосов
/ 18 октября 2019

Предполагая, что вы хотите использовать это в stackoverflow, кнопка «избранное это сообщение» содержит классы, которые однозначно идентифицируют его.

document.querySelector('.js-favorite-btn').click();

Если вы имеете в виду какой-то другой сайт с похожимКнопка, а также проверить уникальные классы, имена и даже атрибуты (например, пользовательские атрибуты data-x), которые могут быть выбраны по запросу.

Наконец, в качестве крайней меры, вы можете пройти через dom в селекторе запросов. с чем-то вроде

document.querySelector('#mainbar > .question div.post-layout button').click();

mdn querySelector и querySelectorAll

...