开发者

Watir : How do we capture the subitems displayed by doing mouseover on a particular item

开发者 https://www.devze.com 2023-02-25 00:41 出处:网络
I am trying to work with mouseover on a particular Item in my application by using the following command

I am trying to work with mouseover on a particular Item in my application by using the following command {

ie.text_field(:xpath, "//a[contains(text(),'Deal')]").fire_event('onmouseover')

}

On doing mouseover on a item, two subitems are displayed.

Is there any way to capture the sub items which are part of the Item by doing mouseover with which we can report that our test is pass or fail.

Please suggest.

Additional Information :

If we take example,On the StackOver flow page, If i do mouseover on my name, i get a window wher开发者_StackOverflowe i see activity, privileges, Logout and other stuff. This is really what i was looking for. Is there a way to capture the items displayed on the window on doing mouseover.

I also tried to capture the subitems with the following : {

text=ie.text_field(:xpath, "//a[contains(text(),'Deal')]").fire_event('onmouseover')

puts(text.inspect)

}

On doing this "text" value is displayed as 'nil'.


My general tactic for such things is a combination of using IRB and the IE Developer tool, or Firebug.

using IRB, type out (or cut and paste) the watir statement to fire the onmouseover command to the proper element on the page.

Then have the developer tool rescan the DOM (there's a little refresh icon you can click) The use the tool to point to an element to point to one of the items in the stuff exposed by the onmouseover. Using the info from that, you can then figure out how to address those elements to get the text from the proper div, etc.

If I do that here to the info that opens up when I float the mouse over my name I can find out that it is a table of class "profile-recent-summary" Furthermore I can then look at the way the table is made up and see for example that the 'today' reputation value is in the second cell on that row.. The row also has the text 'reputation' in it.. so

browser.table(:class, 'profile-recent-summary').row(:text, /reputation/).cell(:index, 2).flash

Should flash the cell I want (index might be 1 if using firewatir or webdriver) I can then replace the .flash with something else like .text if I want to get the text from that cell (which is actually inside a link that sits in the cell)..


without seeing your code, I would 'inspect' the element that you are trying to verify and when_present (text) assert that its true

0

精彩评论

暂无评论...
验证码 换一张
取 消