1

我有 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

这三种类型都导致 element not found 异常。请让我知道如何单击该元素。

4

3 回答 3

0

嘿,试着做一些类似的事情

 .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

如果有一些错误,我想你会了解更多。

于 2011-08-26T07:04:05.550 回答
0

这看起来像是一些自定义选项卡控件的一部分,该控件使用了在客户端上运行的大量 CSS 和 javascript。我可以在 Sencha “Ext JS” 社区论坛中找到一些具有相似类名的帖子。看着他们的一些样品

与任何具有大量执行 CSS 和其他魔法的客户端代码的页面一样,您可能需要在页面加载后等待一两秒钟,以便客户端代码执行。所以这将是我要尝试的第一件事。

如果不是,我注意到很多选项卡代码正在创建 onmouseover 事件,并且当我将鼠标悬停在选项卡上时 DOM 的内容正在动态更改,因此您可能必须查看是否可以首先触发“on-mouseover”尝试单击该项目之前的事件,这可能会使该项目处于可以单击的状态。

其他具有相似选项卡名称的人是“EXT.NET”, 我再次可以在他们的论坛中找到这些类名出现的东西。我还可以在他们的示例页面中找到一些选项卡的示例(它是关闭选项卡的按钮)。关于等待或首先尝试 onmouseover 的类似建议也适用于此处。

如果先触发事件不起作用,并且我对控件的来源是正确的,请查看您是否可以在他们的示例/示例中的某个地方找到您的控件,如果可以,请发布链接,这将使这里的人们与控制这种风格,让我们有更好的机会弄清楚是什么让它打勾。

几个月前, 我们在 Watir google 小组中也收到了类似的请求,但原始发帖人(“Mahesh”)从未回复过可能的答案,因此不知道他们是否/如何解决了这个问题。

于 2011-08-30T20:21:02.673 回答
0

这应该适用于您提供的 HTML:

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

如果您收到“未找到元素”,请检查链接是否在框架中。这也可能是时间问题,当您查找链接时,链接不存在。

于 2011-08-29T12:27:22.587 回答