我在网格中有很多行,下面只列出了两行。当我选择一行并单击下拉菜单时,只显示下拉菜单。我只想在显示它的位置选择帐户开启下拉项。我可以使用什么 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 :(得分:1)
使用以下xpath
"//ul[@name='colActionDropdownMenu'][contains(@style,'display: block')]//a[@id='AccountOpen']"
如果需要,您可以删除链接的ID部分。