2016-09-13 8 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

これは動作しません。なぜなら、そのidは隠されている多くの行のためです。私は、のようなものを使用する必要がありますが、使用する完全なxpathを確認していない。 // ul [@style = 'top:319px;表示ブロック;左:76ピクセル。右:自動; ']/li/* – user3597472

答えて

1

使用次のXPath

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

ますあなたが望むならリンクのid部分を削除することができます。

関連する問題