3

EDIT: I used mouse events and did get a working solution that is pretty ugly :).

So I may be at a point that automating this page will not be possible. I am trying to click a popup menu that appears upon clicking an image (arrow). The problem is once I click the arrow, the popup menu does not exist anywhere that I can find. I cannot inspect its element either. It crashes the "inspect element" in IE (page must load in IE) and a using a third party extension DebugBar also does nothing.

Whats happening is that in some cases when I select the popup link it opens in a new frame on the same page. The javascript changes everything for the new frame. When it instead uses a new URL (pop up window) I won't have problems navigating. Only when I need the new frame to appear so that I can get the new elments on the page.

A brief picture of the menu.

I am wondering if anyone have any ideas I could try.

To click the arrow I have to navigate the DOM using an Xpath as the id does not exist. (the "import" icon is a button separate from the arrow) Maybe there is something I can do with calling javascript in the source?

I know the target in many places is the UCF_Mainframe. Just most of the changes happen in the javascript (which I can view all the functions by viewing source). What I believe is happening is the popup is all javascript rendered so its probably just an onclick event.

The main body:

<TD id=import title="Import" class=clsHeaderItem selectedImg="x" unselectedImg="null" targetArgument="" target="UCF_X" url="" dataFrame="null" popUp="0">

<TABLE style="TABLE-LAYOUT: fixed" cellSpacing=0 width="100%" cellpading="0">
<TBODY>
<TR>
<TD class="BorderTop BorderBottom BorderLeft" height=55 width="100%" align=center>
<DIV><SPAN id=0>Import</SPAN></DIV>
<DIV align=center valign="middle">
<DIV style="PADDING-BOTTOM: 2px; PADDING-TOP: 2px"><IMG id=0 src="x"><IMG id=0 src="xx">

<IMG id=1 src="x3"> <---Arrow Element Here

</DIV></DIV></TD></TR></TBODY></TABLE></TD>

The problem I saw with creating a action builder was that it doesn't behave exactly like a mouse cursor so when you hover over the area it doesn't see it because there are no elements being hovered over it. Though I have not tried this extensively yet. Maybe I could try manually changing the mouse cursor location and than "click" but this is probably an ugly way to do things so I will wait to try it.

If all this fails I will have to end up going directly to the DB which I don't want to do.

1
  • I ended up using Cursor movements and Mouse events which ended up working. Its ugly but I am not trying to test the page just gain access to its controls.
    – Tyson
    May 11, 2015 at 18:47

1 Answer 1

2

when I select the popup link it opens in a new frame on the same page.

For webdriver, you have to explicitly move the driver to a new frame. If you can identify the frame, you can use driver.switchTo().frame() to find elements inside it.

Does that help?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.