2016-09-30 125 views
1

我想了解如何使用python与脚本中的脚本。大多数时候我正在练习“静态元素”,但现在我想选择一些具有动态编号的元素,但问题是他们的编号没有局部静态部分。如何找到这种元素与硒

但是他们还有另外一个“身份证”,这个静态时间,但我不知道如何在Python与硒我已经尝试了两种不同的东西,但硒是无法找到这个元素

这部分使用元素:

<div class="table-cell show-plus" ng-class="{'show-plus': !user.deleted &amp;&amp; (authentication.user.isManager || user.isMe) &amp;&amp; (!group.isExchange || !ctrl.isPast(day)), 'no-events': !_events.length, 'is-today': day === ctrl.todayString}" ng-repeat="day in ctrl.currentDays" ng-click="ctrl.addShift(user, day, false, group.grouping, group.isExchange, group.key)" lvl-drop-target="true" on-drop="ctrl.dropped(dragEl, dropEl, event, 'week')" data-user-id="30308" data-is-exchange="false" data-shift-date="2016-09-29" id="5aa270ea-180f-2861-c97a-506c76cee386"><!----><div data-shift-id="134514" data-is-exchange="false" ng-repeat="event in ::(_events = (user.events[day] | filter:ctrl.filterOutMultiday | orderBy:['sort', 'dtstart'])) track by event.key" lvl-draggable="true" augment-draggable="" class="shift s12B835 published can-be-selected" ng-class="::{ 
       leave: event.type === 'leave', 
       staging: event.status === 'planning', 
       cancelled: event.cancelled, 
       openend: event.isOpenEnded, 
       published: event.status === 'published', 
       unpublished: event.status !== 'published', 
       unavailability: event.type === 'availability', 
       'can-be-selected': event.canBeSelected 
      }" draggable="true" id="c9d08710-daef-cdf7-9d7b-c4ceb13541a6"><!----><div class="shift-selection" ng-click="ctrl.stopEventPropagation($event)" ng-if="::event.canBeSelected"><div class="checkmark-wrapper"><label class="checkmark"><input type="checkbox" ng-model="ctrl.selectedEvents[event.id]" ng-change="ctrl.selectionChanged()" class="ng-pristine ng-untouched ng-valid ng-empty"> <span></span></label></div></div><!----><div class="shift-details" ng-click="ctrl.openShift(event, group.isExchange, $event)" ng-class="{'right-icon': event.showOfferedShiftIcon || event.showAvailableShiftIcon || event.showTimeoffIcon}"><div class="ellipsis" title="9:00A - 5:00P • 8H">9:00A - 5:00P • 8H <img style="margin-top:-2px" ng-show="event.tagId &amp;&amp; event.status !== 'planning'" src="/assets/svg/Icons/16/shift-repeat-white-8afc52.svg" class="ng-hide"> <img style="margin-top:-2px" ng-show="event.tagId &amp;&amp; event.status === 'planning'" src="/assets/svg/Icons/16/shift-repeat-gray-6d0e14.svg" class="ng-hide"></div><div class="ellipsis duration" ng-show="event.position">Design <span class="show-on-collapsed">• Carl Fairclough</span></div><div class="ellipsis duration ng-hide" ng-show="!event.position">Carl Fairclough</div><span class="shift-details-status ng-hide" ng-show="event.showOfferedShiftIcon"><img src="/assets/svg/Icons/24/shift-offer-white-cce33c.svg"> </span><span class="shift-details-status ng-hide" ng-show="event.showAvailableShiftIcon"><img src="/assets/svg/Icons/24/shift-available-white-c55aba.svg"> </span><span class="shift-details-status ng-hide" ng-show="event.showTimeoffIcon"><img src="/assets/svg/Icons/24/shift-timeoff-white-0cab28.svg"></span></div></div><!----></div> 

<div data-shift-id="134514" data-is-exchange="false" ng-repeat="event in ::(_events = (user.events[day] | filter:ctrl.filterOutMultiday | orderBy:['sort', 'dtstart'])) track by event.key" lvl-draggable="true" augment-draggable="" class="shift s12B835 published can-be-selected" ng-class="::{ 
       leave: event.type === 'leave', 
       staging: event.status === 'planning', 
       cancelled: event.cancelled, 
       openend: event.isOpenEnded, 
       published: event.status === 'published', 
       unpublished: event.status !== 'published', 
       unavailability: event.type === 'availability', 
       'can-be-selected': event.canBeSelected 
      }" draggable="true" id="c9d08710-daef-cdf7-9d7b-c4ceb13541a6"><!----><div class="shift-selection" ng-click="ctrl.stopEventPropagation($event)" ng-if="::event.canBeSelected"><div class="checkmark-wrapper"><label class="checkmark"><input type="checkbox" ng-model="ctrl.selectedEvents[event.id]" ng-change="ctrl.selectionChanged()" class="ng-pristine ng-untouched ng-valid ng-empty"> <span></span></label></div></div><!----><div class="shift-details" ng-click="ctrl.openShift(event, group.isExchange, $event)" ng-class="{'right-icon': event.showOfferedShiftIcon || event.showAvailableShiftIcon || event.showTimeoffIcon}"><div class="ellipsis" title="9:00A - 5:00P • 8H">9:00A - 5:00P • 8H <img style="margin-top:-2px" ng-show="event.tagId &amp;&amp; event.status !== 'planning'" src="/assets/svg/Icons/16/shift-repeat-white-8afc52.svg" class="ng-hide"> <img style="margin-top:-2px" ng-show="event.tagId &amp;&amp; event.status === 'planning'" src="/assets/svg/Icons/16/shift-repeat-gray-6d0e14.svg" class="ng-hide"></div><div class="ellipsis duration" ng-show="event.position">Design <span class="show-on-collapsed">• Carl Fairclough</span></div><div class="ellipsis duration ng-hide" ng-show="!event.position">Carl Fairclough</div><span class="shift-details-status ng-hide" ng-show="event.showOfferedShiftIcon"><img src="/assets/svg/Icons/24/shift-offer-white-cce33c.svg"> </span><span class="shift-details-status ng-hide" ng-show="event.showAvailableShiftIcon"><img src="/assets/svg/Icons/24/shift-available-white-c55aba.svg"> </span><span class="shift-details-status ng-hide" ng-show="event.showTimeoffIcon"><img src="/assets/svg/Icons/24/shift-timeoff-white-0cab28.svg"></span></div></div> 

唯一的东西,我来接这个元素是使用:wwith ID和XPath,但同样重

> data-shift-id="134514" 

我已经尝试了不同的方法最后出现“无法找到这个元素”

你有什么想法吗?

+0

您可以使用类。 SHare你的网站 –

+0

我不认为它可以与班级合作,对不起,我不能共享网站,它需要凭据。 –

+0

有重复标签。使用重复。 –

回答

0

您可以使用属性,像这样建一个cssSelector:

driver.find_element_by_css_selector("Yourtag[attributeName='Your AttributeValue']"); 

对于下面的代码片段您的具体情况使用:

driver.find_element_by_css_selector("div[data-shift-id='134514']"); 
+0

感谢您的帮助,我尝试了您的想法,但它仍然无法找到这个元素悲伤。 –

+0

它会抛出任何异常吗?你能否提供检查过的HTML代码部分? –

+0

除了是NoSuchElement,我编辑了我的帖子,为您提供更多的HTML –