Watir 无法使用LI标记内的图像单击锚定
我喜欢HTMLWatir 无法使用LI标记内的图像单击锚定,watir,browser-automation,Watir,Browser Automation,我喜欢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: hidde
<!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>
这三种类型都导致元素未找到异常。请让我知道如何单击元素。嘿,请尝试执行以下操作
.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
如果出现错误,我想您将了解更多信息。这应该适用于您提供的HTML:
browser.link(:class => "x-tab-strip-close").click
如果得到“未找到元素”,请检查链接是否在帧中。这也可能是一个时间问题,当您查找它时,链接不在那里。这看起来像是某些自定义选项卡控件的一部分,该控件在客户端上使用大量CSS和javascript运行。我可以在Sencha“Ext JS”社区论坛上找到一些类似类名的帖子。看看他们的一些作品 与任何有大量客户端代码执行CSS和其他魔术的页面一样,您可能需要在页面加载后等待一两秒钟,以执行客户端代码。所以这将是我尝试的第一件事 如果没有,我注意到很多选项卡代码正在创建onmouseover事件,当我将鼠标移到选项卡上时,DOM的内容正在动态变化,因此您可能必须先查看是否可以在尝试单击该项之前触发“on mouseover”事件,这可能会使该项从可以单击的状态恢复 其他有着相似标签名的人再一次被我发现,我可以在他们的论坛中找到这些类名出现的地方。我还可以在一些选项卡的示例页面中找到这方面的示例(这是一个关闭选项卡的按钮)。关于等待或先在Mouseover上尝试的类似建议也适用于此 如果先触发一个事件不起作用,并且我对控件的来源的看法是正确的,请查看您是否可以在他们的示例/示例中找到您的控件,如果可以,请发布链接,这将让这里的人们与这种风格的控件进行交互,并让我们有更好的机会找出它的原因
几个月前,我们还收到了来自Watir google group的一封邮件,但原始海报(“Mahesh”)从未回复可能的答案,因此不知道他们是否/如何解决了这个问题 “browser”的意思是浏览器对象,比如“ie”,谢谢你的回复,但是。存在吗?是错误的,ie开发者显示如下htmlI我无法将所有ie开发者工具输出粘贴到这里。我可以在此论坛中附加文件吗?我也可以将代码发送到你的电子邮件中,如果你想让我…仅供参考链接中没有图像,链接实际上是空的。您看到的很可能是CSSie为特定类放置的“背景图像”。link(:class,“x-tab-strip-close”)。是否存在?返回true,但ie.link(:class,“x-tab-strip-close”)可见吗?返回false。我清楚地看到了元素,我不知道为什么。可见吗?应该返回false。使用QTP 9.5尝试了相同的活动,使用了相同的属性并成功单击了元素。我们的应用程序没有框架,但它使用了大量的panelsthank来获取信息。我能够找到我控制的源头。我的要求是关闭该选项卡。希望此帮助扫描任何人,请为此提供解决方案?正如我已经发布的,我已经找到了我的控件()的源代码,之后没有任何进展(我仍然无法关闭tab控件)。如果很快找不到解决方案,我们可能不得不中止在项目中使用WATIR:(很抱歉,我正忙于寻找工作,然后又开始了新的工作。当我与您提供的代码示例交互时,我注意到关闭选项卡的小x图标会在我将鼠标移到其上时发生反应和更改。这意味着它正在做一些与鼠标悬停事件相关的事情,它可能正在做的事情之一是:更改对象的可见性。首先尝试对该元素触发onmouseover事件,等待一秒钟,让任何客户端代码执行该操作,然后查看是否可以单击该对象。
browser.link(:class => "x-tab-strip-close").click