2016-09-13 4 views
0

У меня есть много строк в сетке, в котором перечислены только два ниже. Когда я выбираю строку и нажимаю на раскрывающийся список, тогда отображается только раскрывающееся меню. Я хочу выбрать раскрывающийся список Открыть только там, где он отображается. Что такое 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> 
+0

Вы видите код html в вопросе? – user3597472

+1

Почему вы не можете использовать 'driver.find_element_by_id (« AccountOpen »)'? – Sudeepthi

+0

, который не сработает, поскольку этот идентификатор существует для многих строк, которые скрыты. я должен использовать что-то вроде, но не уверен, что полный xpath будет использоваться. // ul [@style = 'top: 319px; display: block; слева: 76 пикселей; right: auto; ']/li/* – user3597472

ответ

1

Используйте следующие XPath

"//ul[@name='colActionDropdownMenu'][contains(@style,'display: block')]//a[@id='AccountOpen']" 

Вы вы можете удалить идентификационную часть для ссылки.

Смежные вопросы