Невозможно щелкнуть привязку с изображением внутри тега LI - PullRequest
1 голос
/ 26 августа 2011

У меня есть HTML как

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Transitional//EN">
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<HTML>
  <BODY class=" ext-border-box ext-ie ext-ie7 ext-windows" style="OVERFLOW: hidden">
    <DIV class=" x-viewport x-component x-border-layout-ct" id="x-auto-0" style="WIDTH: 1280px; HEIGHT: 862px" __eventBits="16384">
      <DIV class=" x-panel x-component x-border-panel" id="x-auto-9" style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; LEFT: 224px; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 1054px; TOP: 35px; BORDER-RIGHT-WIDTH: 0px">
        <DIV class="x-panel-bwrap"><DIV class="x-panel-body x-panel-body-noheader" style="WIDTH: 1054px; HEIGHT: 775px" __eventBits="16384">
          <DIV class=" x-tab-panel x-component" id="x-auto-17" hideFocus style="WIDTH: 1052px" __eventBits="6909">
            <DIV class="x-tab-panel-header x-unselectable" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; WIDTH: 1052px" unselectable="on">
              <DIV class="x-tab-strip-wrap" style="WIDTH: 1052px" role="presentation">
                <UL class="x-tab-strip x-tab-strip-top">
                  <LI class="x-tab-strip-closable  x-component x-tab-strip-active " id="x-auto-17__x-auto-180" hideFocus style="MozOutline: none" __eventBits="125" role="tab">
                    <A class="x-tab-strip-close" role="presentation"></A>
                  </LI>
                </UL>
              </DIV>
            </DIV>
          </DIV>
        </DIV>      
      </DIV>
    </DIV>
  </DIV>
</BODY>
</HTML>

Я не могу щелкнуть Объект с тегом <A>, который имеет атрибут класса.Я попытался использовать три разных способа

1. ie.link(:class,"x-tab-strip-close").click
2. ie.li(:class,"x-tab-strip-closable  x-component x-tab-strip-active ").link(:class,"x-tab-strip-close").click
3. ie.li(:xpath,"//li[@class='x-tab-strip-close']").click

Все три типа привели к исключению элемента not found.Пожалуйста, дайте мне знать, как я нажимаю на элемент.

Ответы [ 3 ]

0 голосов
/ 29 августа 2011

Это должно работать с предоставленным вами HTML:

browser.link(:class => "x-tab-strip-close").click

Если вы получили «элемент не найден», проверьте, находится ли ссылка во фрейме. Это также может быть проблема с синхронизацией, когда вы ее ищете, ссылка отсутствует.

0 голосов
/ 31 августа 2011

Похоже, что это часть некоторого пользовательского элемента управления вкладками, который использует много CSS и javascript, работающих на клиенте.Я могу найти некоторые сообщения на форуме сообщества Sencha "Ext JS", на котором есть похожие имена классов.Рассматривая некоторые из их примеров .

Как и на любой странице, на которой много кода на стороне клиента, выполняющего CSS и другую магию, вам может потребоваться подождать секунду или две после загрузки страницыдля выполнения кода на стороне клиента.Так что это было бы одной из первых вещей, которые я бы попробовал.

Если нет, я заметил, что большая часть кода табуляции создает события onmouseover, и содержимое DOM меняется на лету, когда я нахожу курсор мышивкладки, так что вам, возможно, придется посмотреть, можете ли вы сначала запустить событие «при наведении мыши», прежде чем пытаться щелкнуть по элементу, потенциально это может вывести его из состояния, в котором он может быть нажат.

Другие люди с похожими именами вкладок: 'EXT.NET' Снова я могу найти материал на их форумах, где появляются эти имена классов.Я также могу найти примеры этого (это кнопка, чтобы закрыть вкладку) на их странице примеров для некоторых вкладок.Аналогичный совет, касающийся ожидания или попытки сначала перебить, применим и здесь.

Если запуск события сначала не работает, и я прав насчет источника элементов управления, пожалуйста, посмотрите, можете ли вы найти свой элемент управления где-нибудь среди их примеров / примеров и, если да, опубликуйте ссылку, топозволит людям здесь взаимодействовать с контролем над этим стилем и даст нам лучший шанс выяснить, что делает его галочкой.

У нас также был аналогичный запрос от кого-то несколько месяцев назад в группе Google Watir, но оригинальный постер ("Махеш") никогда не отвечал на потенциальные ответы, поэтому неизвестно, если /как они решили проблему.

0 голосов
/ 26 августа 2011

Эй, просто попытайся сделать что-то вроде

 .link(:class, "x-tab-strip-closable x-component x-tab-strip-active").exist? == true
        begin
             browser.link(:class, "x-tab-strip-closable x-component x-tab-strip-active").click

          rescue => e
              rescueHandle(e)
          end
 else
     puts "FAILED! Could not find Class for Component"
         return false
  end

Я думаю, вы узнаете больше, если будут какие-то ошибки.

...