Текущая ситуация: Есть несколько файлов и папок в определенном месте. Как только вы наведите указатель мыши на файл или папку, появится значок, затем вы можете щелкнуть по этому значку, и появится меню. Из этого меню пользователь может выбрать любое действие (переименовать, переместить и т. Д.). Проблема в том, что XPath, предоставляемый FirePath, ломается всякий раз, когда в файле создается/добавляется новый файл/папка.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 не сломается ?
Ниже приведен раздел HTML, который относится к XPath, предоставленному FirePath. Когда 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>
Я использую Selenium 2.0, на Eclipse IDE.
Не могли бы вы разместить больше HTML? Является ли атрибут «имя-имя» уникальным для каждого элемента? – JacekM
@JacekM: Да, атрибут data-name уникален для каждого элемента. – T4000