У меня есть много строк в сетке, в котором перечислены только два ниже. Когда я выбираю строку и нажимаю на раскрывающийся список, тогда отображается только раскрывающееся меню. Я хочу выбрать раскрывающийся список Открыть только там, где он отображается. Что такое Xpath, что я могу использовать для достижения этого? Я заметил, что там, где она отображается, стиль говоритКак выбрать xpath, где отображается раскрывающийся список
style="top: 446px; display: block; left: 76px; right: auto;">;
, где, как и другие, говорит дисплей: ни один.
я придумал ниже, но хотите иметь только один Xpath со всеми в
driver.find_element_by_xpath("//div[not(contains(@style,'display:none'))]//name['colActionDropdownMenu']")
driver.find_elements_by_xpath('//*[contains(@id, 'AccountOpen')]')
HTML:.
<ul name="colActionDropdownMenu" class="dropdown-menu action-dropdown-menu noselect" dropdown-menu="" role="menu" style="top: 446px; display: none; left: 76px; right: auto;">
<li role="menuitem" ng-repeat="action in grid.appScope.validActions">
<a href="" id="AccountOpen" ng-click="grid.appScope.doAction(action)">Account Open</a>
</li><li role="menuitem" ng-repeat="action in grid.appScope.validActions">
</ul>
<ul name="colActionDropdownMenu" class="dropdown-menu action-dropdown-menu noselect" dropdown-menu="" role="menu" style="top: 269px; display: block; left: 76px; right: auto;">
<li role="menuitem" ng-repeat="action in grid.appScope.validActions">
<a href="" id="AccountOpen" ng-click="grid.appScope.doAction(action)">Account Open</a>
</li><li role="menuitem" ng-repeat="action in grid.appScope.validActions">
</ul>
Вы видите код html в вопросе? – user3597472
Почему вы не можете использовать 'driver.find_element_by_id (« AccountOpen »)'? – Sudeepthi
, который не сработает, поскольку этот идентификатор существует для многих строк, которые скрыты. я должен использовать что-то вроде, но не уверен, что полный xpath будет использоваться. // ul [@style = 'top: 319px; display: block; слева: 76 пикселей; right: auto; ']/li/* – user3597472