#selenium #rselenium
Вопрос:
Я пытаюсь найти xpath
svg
то, что находится рядом с
"//label[@class='btn btn-light p-1']/input[@value='star']
https://9qrcode.com/#link
затем выберите Дизайн
Комментарии:
1. Что вы подразумеваете под «затем выберите дизайн»?
2. Кроме того,
//label[@class='btn btn-light p-1']/input[@value='star']
не является уникальным локатором3. когда вы откроете веб-сайт, затем нажмите кнопку «Дизайн», вы найдете шаблон, границу маркера, центр маркера, затем просмотрите источник страницы, вы увидите div, метку и ввод выше
Ответ №1:
Я ненавижу делать такие xpath, так как я согласен с Элиягу — такие xpath не будут уникальными…но раз вы спросили, вот, пожалуйста, это должно сработать для вас:
//input[@value = 'star']/parent::label[contains(@class, 'btn-light')]/preceding-sibling::label[contains(@class, 'btn-light')]/*[name() = 'svg']
Ответ №2:
Вы можете использовать это xpath
—
(//label[contains(@class,"btn btn-light")]/*[local-name() = 'svg'])[2]
вы можете указать свой номер элемента в замене [2].
Комментарии:
1. можем ли мы связать xpath с вводом[@value=’звезда’]???? т. е. я не хочу использовать [2], потому что, возможно, местоположение изменится
Ответ №3:
//input[@value='star']/preceding::label[@class='btn btn-light p-1'][1]
Это приведет к получению предыдущего элемента перед значением звезды, которое, поскольку оно не уникально, даст два значения.