这是当前情况:在特定位置有几个文件和文件夹。 将鼠标悬停在文件或文件夹上后,会出现一个图标,然后您可以单击该图标并出现一个菜单。从该菜单中,用户可以选择任何操作(重命名,移动等)。问题是无论何时在该位置创建/添加新的文件/文件夹,FirePath提供的XPath都会中断。XPath在更改时被破坏
这是代码的初始行直到中的XPath被破坏的正常工作:
webDriver.findElement(By.xpath("//*[@id='main_files_view']/ol/li[6]/ul/li[4]")).click();
每当一个新的项中的位置加入,以值的索引“6”可以改变为“7”现在(文件的新位置)和产生的XPath是稍有不同:
webDriver.findElement(By.xpath("//*[@id='main_files_view']/ol/li[7]/ul/li[4]")).click();
我怎样才能改变这种XPath和使它强健因此,无论添加的项目数/删除,的XPath不会破?
下面是与FirePath提供的XPath相关的HTML部分。 当提供XPath时,最后一个类也被高亮显示。
<li class="storage_item document file_object even ui-draggable" data-thumb-translation="Translated" data-possible-actions="Rename Delete Share Move View" data-file-size="0 bytes" data-item-type="file" data-display-name="solids_A" data-name="solids_A.raas" data-id="bd48453c752043d98afb237b86ee88a3">
<a class="file_name" href="#/Item/Details?id=bd48453c752043d98afb237b86ee88a3&itemtype=File&tab=Default">
<img class="file_list_icon" width="16" height="16" src="https://api-staging.autodesk.com/content/gateway/2013.1.307595.626/z/Content/images/fileIcons/small/raas.png"/>
<div class="name_container">
<ul class="tools">
<li class="preview_trigger"/>
<li class="comment_balloon none has_tooltip" data-tooltip-contents="#comment_balloon_tooltip" data-comments="0">
<li class="categorize action has_tooltip" data-tooltip="Categories"/>
<li class="document_tools has_tooltip" data-tooltip="Actions"/>
</ul>
</li>
我使用硒2.0,在Eclipse IDE中。
你能否发布更多的HTML?每个项目的“数据名称”属性是唯一的吗? – JacekM
@JacekM:是的,数据名称属性对每个项目都是唯一的。 – T4000