Я перемещаюсь по веб-странице, используя селен, и нажимаю различные кнопки для выполнения различных задач. Каждая кнопка, которую я нажал до сих пор, имеет своего рода уникальный идентификатор, который позволяет мне точно найти и щелкнуть этот элемент. Тем не менее, есть кнопка, которая разделяет все идентификаторы с другими кнопками на той же странице (т.е. нет способа идентифицировать ее напрямую). Эта кнопка является потомком (7 поколений ниже) элемента с уникальным идентификатором класса.
Кнопки страницы являются динамическими, поэтому многие элементы меняют атрибуты при каждой загрузке страницы.
Я пробовал каждую комбинацию под радугой нажимать эту кнопку, но не нашел решения.
Вот некоторые сценарии, которые я пробовал:
1.
ele = browser.find_element_by_xpath("//*[@class='firsttile']//*[@class='md-icon-button md-accent md-button md-ink-ripple md-default-theme']")
ele.click()
2
ele = browser.find_element_by_xpath("//*[@class='firsttile']/*/[@class='md-icon-button md-accent md-button md-ink-ripple md-default-theme']")
ele.click()
3
ele = browser.find_element_by_xpath("//*[@class='firsttile']*/*[@class='md-icon-button md-accent md-button md-ink-ripple md-default-theme']")
ele.click()
4
ele = browser.find_element_by_xpath("//*[@class='firsttile']///////[@class='md-icon-button md-accent md-button md-ink-ripple md-default-theme']")
ele.click()
Это кнопка:
<button class="md-icon-button md-accent md-button md-ink-ripple md-default-theme" type="button" ng-transclude="" ng-click="$mdOpenMenu($event)" aria-haspopup="true" aria-expanded="false" aria-owns="menu_container_338">
Это родитель с уникальным идентификатором как firsttile
<measure-tile measure-info="measure" ng-class="measure.lookup + 'Tile'" class="firsttile">
Любая помощь или понимание будут с благодарностью! Ничто в стеке или другие сайты не помогли мне решить эту проблему. Заранее спасибо.
Edit:
Я приложил полный путь DOM здесь. Первоначально я опубликовал, что имя класса было «firsttile», но в своем сообщении его не идентифицировали. Истинное имя класса - «ontimestartsTile».
Я приложил мою последнюю попытку здесь:
parent = browser.find_element_by_class_name('firsttile');
button = parent.find_element_by_xpath("//*[@class='md-icon-button md-accent md-button md-ink-ripple md-default-theme']")
button.click()