Помощь в написании xpath selenium
есть вот такой вот элемент:
<tr class="ant-table-row functions-table_row __expanded ant-table-row-level-0" data-row-key="51"><td class="ant-table-row-expand-icon-cell"><span class="ant-table-row-expand-icon ant-table-row-expanded"></span></td><td class="functions-table_first-cell"><div><span class="function-name">Обход штатного иммобилайзера</span></div></td><td class="functions-table_cell"></td><td class="functions-table_cell"></td><td class="functions-table_cell"><div class="point-icon"></div></td></tr>
Который мне нужно найти в таблице по data-row-key="51", и проверить наличие точки class="point-icon" в соседних элементах которые находятся на том же уровне, помогите мне понять как я могу это сделать вот примерно в таком виде?
try:
for point_elem in driver.find_elements_by_xpath('#xpath data-row-key="51"'):
#if point в 1 элементе:
#point = 'YES'
#elif point в 2 элементе:
#point = 'YES'
#elif point в 2 элементе:
#point = 'YES'
except:
point = 'No'
Ответы (1 шт):
Автор решения: Vladimir Obrizan
→ Ссылка
Правильный XPath, который найдет все элементы, у который атрибут data-row-key равен 51:
//*[@data-row-key="51"]
https://developer.mozilla.org/en-US/docs/Web/XPath/Axes/attribute.
Вы можете найти корневой WebElement и найти в нем элементы с нужным классом:
root = driver.find_elements_by_xpath('//*[@data-row-key="51"]')[0]
elements = root.find_elements_by_class_name('point-icon')
В массиве elements будут все теги с классом point-icon. Или массив будет пустой, если таких тегов нет.