2014-05-20 4 views
0

Со всей потрясающей помощью, которую я здесь получил, я подумал, что попрошу большего. У меня есть экран, который как случайное число строк кликабельных ссылок. Мне нужно щелкнуть последнюю строку этого списка. Затем выясните, правильно ли это. Если нет, вернитесь назад, выберите 2-й в последнюю строку, затем 3-й в последнюю строку и т. Д. Пока я не найду то, что хочу, или закончил строки.Выбор последней строки. Тогда, возможно, итерация назад

К сожалению, каждая строка имеет то же точное имя. и я должен щелкнуть его, чтобы узнать, нужна ли мне строка.

Ниже приведен пример одного из строк:

<a href="javascript:void(0)" role="button" dojoattachpoint="subject" dir="ltr" aria-labelledby="taskrowsubjectcom_ibm_bpm_social_widgets_task_list_TaskRow_19" title="Click to work on the task">Request Full Quotes from Supplier: Supplier One</a> 

Единственное отличие состоит в число после TaskRow. Любая помощь?

Вот код, предшествующий строке:

<div id="dueToday" class="bpm-task-list-category dijitTitlePane" title="" role="group" widgetid="dueToday" aria-label="Due Today (2)" style="display: block;"> 
<div class="dijitTitlePaneTitle dijitOpen" dojoattachpoint="titleBarNode" dojoattachevent="onclick:_onTitleClick, onkeypress:_onTitleKey"> 
<div class="dijitTitlePaneContentOuter" role="presentation" dojoattachpoint="hideNode"> 
<div class="dijitReset" role="presentation" dojoattachpoint="wipeNode" style="height: auto;"> 
<div id="dueToday_pane" class="dijitTitlePaneContentInner" role="presentation" dojoattachpoint="containerNode" aria-hidden="false"> 
<div> 
<div id="com_ibm_bpm_social_widgets_task_list_TaskRow_2" class="bpm-social-task-row" widgetid="com_ibm_bpm_social_widgets_task_list_TaskRow_2" style="display: block;"> 
<div id="com_ibm_bpm_social_widgets_task_list_TaskRow_1" class="bpm-social-task-row" widgetid="com_ibm_bpm_social_widgets_task_list_TaskRow_1" style="display: block;"> 
<div class="bpm-social-task-box" dojoattachpoint="taskBoxAttach"> 
<div class="bpm-social-task-row-status-img-div"> 
<div class="bpm-social-task-row-data-div" role="listitem" tabindex="0" dojoattachevent="ondijitclick:toggle" dojoattachpoint="focusNode"> 
<div class="bpm-social-task-row-data-header"> 
<span class="bpm-social-task-row-data-subject"> 
<div id="taskrowsubjectcom_ibm_bpm_social_widgets_task_list_TaskRow_1" style="display:none" dojoattachpoint="headerLabel">Task subject</div> 
<a href="javascript:void(0)" role="button" dojoattachpoint="subject" dir="ltr" aria-labelledby="taskrowsubjectcom_ibm_bpm_social_widgets_task_list_TaskRow_1" title="Click to work on the task">Request Full Quotes from Supplier: Supplier One</a> 
</span> 
<div class="bpm-social-drop-down" wairole="button" style="display: block;" tabindex="0" dojoattachpoint="menuButton" role="button" aria-label="Actions" _dijitmenucom_ibm_bpm_social_widgets_actiondropdownmenu_41="1"> 
<span class="bpm-social-task-row-data-due" dojoattachpoint="due"> 
<span class="bpm-social-task-row-data-complete" dojoattachpoint="complete"> 
</div> 

Спасибо! Грег

+0

Каковы строки? Ваши ссылки в таблице? Пожалуйста, напишите больше кода. – ndugger

+0

Я добавил код к исходному комментарию. – GregMa

+0

Пожалуйста, откорректируйте свой код правильно. Это слишком сложно понять. Это только одна строка? Итак, ваши ряды - это divs? Вы затрудняете вам помощь. – ndugger

ответ

0

Вы можете использовать :last-child селектор, чтобы сделать это:

a:last-child[aria-labelledby^='taskrowsubject'] 

С более полной HTML, я был в состоянии придумать с этим XPath:

(//a[contains(@aria-labelledby, 'TaskRow')])[last()] 
+0

Это возвращает мне последний элемент, тогда я могу сделать [last() - X], где X - количество элементов с конца. Единственное, с чем я столкнулся сейчас, - это подсчет элементов для цикла for. 'driver.findElements (By.xpath (" // a [начинается с (@ aria-labelledby, 'taskrowsububjectcom_ibm_bpm_social_widgets_task_list _')] ")). size();' всегда возвращает 1, хотя есть 19 элементов. – GregMa

+0

@GregMa Ваш код выглядит правильно, и ваш xpath тоже. Я не уверен, почему это возвращает неправильное значение. – Richard

+0

Ага, это было время. Он возвращается до завершения подсчета. К сожалению, мне пришлось заснуть. Но с этим он возвращается правильно! Спасибо! – GregMa

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