HP QTP 10:Web 应用程序测试 - SomeObj.FireEvent(“OnCLick”) 有效,SomeObj.Object.FireEvent(“OnCLick”) 无效
我有一个带有 ExtJS 的丰富的 Web 应用程序 btuil。它具有多选列表控件(用JS+CSS创建)。 我想使用 HP QuickTest Pro 10 和 Internet Explorer 6 单击该列表中的某些项目。我将该项目添加到对象存储库中,发现以下代码有效 - 选择某些项目:
Browser("blah").Page("blah").WebElement("SomeElem").Click
下一个代码也有效:
Browser("blah").Page("blah").WebElement("SomeElem").FireEvent("onMouseDown")
Browser("blah").Page("blah").WebElement("SomeElem").FireEvent("onMouseUp")
Browser("blah").Page("blah").WebElement("SomeElem").FireEvent("onClick")
但我想选择多个项目使用shift+单击方法。我不知道该怎么做:( 所以我有几个问题:
- 如何在按住 Shift 键的情况下用鼠标单击多个 Web 元素?
我尝试使用 CreateEventObject + shiftKey 设置为 true 来做到这一点,但该方法(在 DOM 对象上执行 fireEvent,而不是对象存储库中的对象)不起作用:
Browser("blah").Page("blah").WebElement("SomeElem").Object.FireEvent("onClick")
什么WebElement("Element").FireEvent("OnClick") 和 WebElement("Element").Object.FireEvent("OnClick") 之间的区别?
请帮助某人,因为我经常与这个问题作斗争,但没有结果。
谢谢!
I have rich web app btuil with ExtJS. It has multi-select list control (created with JS+CSS).
I want to click on some item in that list using HP QuickTest Pro 10 with Internet Explorer 6. I added that item into Object repository and found that following code works - selects some item:
Browser("blah").Page("blah").WebElement("SomeElem").Click
next code also works:
Browser("blah").Page("blah").WebElement("SomeElem").FireEvent("onMouseDown")
Browser("blah").Page("blah").WebElement("SomeElem").FireEvent("onMouseUp")
Browser("blah").Page("blah").WebElement("SomeElem").FireEvent("onClick")
But I want to select several items using shift+click method. I don't know to do that :(
So I have a few questions:
- How can perform click with mouse on several web elements with Shift key pressed?
I tried to do that using CreateEventObject + shiftKey set to true, but the method (perform fireEvent on DOM object, not object from Object repository) doesn't work:
Browser("blah").Page("blah").WebElement("SomeElem").Object.FireEvent("onClick")
What the difference between WebElement("Element").FireEvent("OnClick") and WebElement("Element").Object.FireEvent("OnClick") ?
Plsease, help someone, because I fought with that problem a lot, but had no result.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
WebElement(...).FireEvent
和WebElement.Object.fireEvent
之间有几个区别,第一个运行执行各种工作的 QTP 函数,第二个直接执行到 DOM 元素。下面列出了 QTP 所做的一些在本机 DOM 方法中未完成的事情(可能还有更多)。FireEvent
步骤至于你的问题,一般来说,你可以使用本机 DOM 方法来传递事件对象,但是当我尝试它时,我无法让它从 QTP 工作
但是等效的东西从浏览器运行时确实有效。
从 QTP11 开始,支持使用
Page("P").RunScript
从脚本运行 JavaScript 文件,直到您可以手动模拟此功能。以下代码片段对我有用(我使用存储库中的对象来获取元素的 IE 特定uniqueID
,这样我就不必再次识别它)。如果一切都失败了,你可以尝试编写一个小的 web-extensibility 项目并支持此功能。
There are several differences between
WebElement(...).FireEvent
andWebElement.Object.fireEvent
the first runs a QTP function which performs all sorts of work and the second directly goes to the DOM element. Here is a list of a few things that QTP does which aren't done in the native DOM method (there may be more).FireEvent
stepAs for your problem, in general you can use the native DOM method in order to pass an event object but when I tried it I couldn't get it to work from QTP
However something equivalent does work when run from the browser.
Starting in QTP11 there's support for running JavaScript files from the script using
Page("P").RunScript
until that you can simulate this ability manually. The following snippet works for me (I use the object from the repository to get the IE specificuniqueID
of the element so I don't have to identify it again).If all else fails you can try writing a small web-extensibility project and support this functionality.