2015-09-25 3 views
0

Я знаю, что вы можете извлекать изображения с помощью XPath, CSS или по ID. Однако есть изображения, которые не имеют уникального идентификатора (или любого другого атрибута). HTML выглядит следующим образом:Selenium: Извлечение изображений по индексу

<div id="altImages" class="a-fixed-left-grid-col a-col-left" style="width:40px;margin-left:-40px;_margin-left:-20px;float:left;"> 
    <div id="thumbs-image" class="a-hidden" customfunctionname="(function(id, state, onloadFunction){ P.when('A').execute(function(A){ A.trigger('image-block-twister-swatch-click', id, state, onloadFunction); }); });"/> 
    <ul class="a-nostyle a-button-list a-vertical a-spacing-top-micro"> 
    <li class="a-spacing-small template"> 
     <span class="a-list-item"> 
     <span class="a-declarative" data-thumb-action="{}" data-action="thumb-action"> 
      <span id="a-autoid-10" class="a-button a-button-thumbnail a-button-toggle"> 
      <span class="a-button-inner"> 
       <input class="a-button-input" type="submit" aria-labelledby="a-autoid-10-announce"/> 
       <span id="a-autoid-10-announce" class="a-button-text" aria-hidden="true"> 
       <span class="placeHolder"/></span> 
       </span> 
      </span> 
      </span> 
     </span> 
    </li> 
    <li class="a-spacing-small item"> 
     <span class="a-list-item"> 
     <span class="a-declarative" data-thumb-action="{"index":"0", "thumbnailIndex":"0", "type": "image", "variant": "MAIN"}" data-action="thumb-action"> 
      <span id="a-autoid-10" class="a-button a-button-thumbnail a-button-toggle"> 
      <span class="a-button-inner"> 
       <input class="a-button-input" type="submit" aria-labelledby="a-autoid-10-announce"/> 
       <span id="a-autoid-10-announce" class="a-button-text" aria-hidden="true"></span> 
       </span> 
      </span> 
      </span> 
     </li> 
     <li class="a-spacing-small item"> 
     <span class="a-list-item"> 
      <span class="a-declarative" data-thumb-action="{"index":"1", "thumbnailIndex":"1", "type": "image", "variant": "PT01"}" data-action="thumb-action"> 
      <span id="a-autoid-10" class="a-button a-button-thumbnail a-button-toggle"> 
       <span class="a-button-inner"> 
       <input class="a-button-input" type="submit" aria-labelledby="a-autoid-10-announce"/> 
       <span id="a-autoid-10-announce" class="a-button-text" aria-hidden="true"></span> 
       </span> 
       </span> 
      </span> 
     </li> 
     <li class="a-spacing-small item"> 
      <span class="a-list-item"> 
      <span class="a-declarative" data-thumb-action="{"index":"2", "thumbnailIndex":"2", "type": "image", "variant": "PT02"}" data-action="thumb-action"> 
       <span id="a-autoid-10" class="a-button a-button-thumbnail a-button-toggle a-button-selected a-button-focus"> 
       <span class="a-button-inner"> 
        <input class="a-button-input" type="submit" aria-labelledby="a-autoid-10-announce"/> 
       <span id="a-autoid-10-announce" class="a-button-text" aria-hidden="true"></span> 
       </span> 
       </span> 
      </span> 
     </li> 

ID для всех элементов id="a-autoid-10-announce". Единственная разница между элементами - это эта часть: data-thumb-action="{"index":"0", "thumbnailIndex":"0" - где значение начинается с 0 и перемещается вверх. Можно ли каким-либо образом использовать это значение для однозначного определения каждого элемента?

P.S

Я знаю, я мог бы использовать findElements и извлечь список и итерацию по списку, но мне было интересно, если это будет работать тоже. Я - Ява и Селен. Продукт, который я просматриваю: http://www.amazon.com/dp/B00I8BIBCW.

Спасибо!

+0

Существует не любое изображение элемента код. какой именно элемент вы хотите получить? ваш вопрос недостаточно ясен –

+0

Локатор будет использоваться для идентификации изображения позже .. основной целью вопроса является - есть ли способ использовать значения выше как уникальный идентификатор ..? –

+0

для какого элемента? –

ответ

0

Вы можете взять все элементы с одинаковым идентификатором в списке, а затем перебрать список для принятия мер против отдельного элемента. Что-то, как показано ниже:

List<WebElement> imgList = driver.findElements(By.id("a-autoid-10-announce")); 
for(WebElement img : imgList) 

    { 
    //do something with image. 
    System.out.println(img.getText()); 

} 
0
driver.findElement(By.xpath("//span[@id='a-autoid-10-announce'][index_no]")) 

вы можете получить доступ к каждому элементу посредством изменения index_no

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