How to access each element of several tables?
I'm currently writing a test script for our MLS( Multiple Listing System ) systems. The website is mainly written in C# .NET.
And this is the HTML source:
> <TABLE style="BORDER-RIGHT-WIDTH: 0px;
> BORDER-TOP-WIDTH: 0px;
> BORDER-BOTTOM-WIDTH: 0px;
> BORDER-LEFT-WIDTH: 0px; CURSOR:
> default" id="uwmMainMenu_MainM"
> onmouseup="javascript:igmenu_mouseup(this,
> event);"
> onselectstart="javascript:igmenu_selectStart();"
> class="WebMenu"
> onmouseover="javascript:igmenu_mouseover(this,
> event);"
> onmouseout="javascript:igmenu_mouseout(this,
> event);"
> onmousedown="javascript:igmenu_mousedown(this,
> event);" border="0" cellSpacing="1"
> cellPadding="2" igLevel="0"
> submenu="1"> <TBODY> <TR> <TD
> accessKey="S"
> onkeydown="igmenu_kbMD(this,event);"
> id="uwmMainMenu_1" class="IGMenuItem"
> onfocus="igmenu_kbFocus(this,event);"
> onkeyup="igmenu_kbNav(this,event);"
> align="center" igTop="1"
> igChildId="uwmMainMenu_1M"
> igHov="IGMenuItemHover" igTag="1"
> igClass="IGMenuItem"
> igPrevClass="IGMenuItem">
> <U>S</U>earches </TD> <TD
> accessKey="L"
> onkeydown="igmenu_kbMD(this,event);"
> id="uwmMainMenu_2" class="IGMenuItem"
> onfocus="igmenu_kbFocus(this,event);"
> onkeyup="igmenu_kbNav(this,event);"
> align="center" igTop="1"
> igChildId="uwmMainMenu_2M"
> igHov="IGMenuItemHover" igTag="2"
> igClass="IGMenuItem"> <U>L</U>istings
> </TD> <TD accessKey="T"
> onkeydown="igmenu_kbMD(this,event);"
> id="uwmMainMenu_3" class="IGMenuItem"
> onfocus="igmenu_kbFocus(this,event);"
> onkeyup="igmenu_kbNav(this,event);"
> align="center" igTop="1"
> igHov="IGMenuItemHover" igTag="26"
> igFrame="_Script"
> igUrl="menuOneLevelItemClick('http://realist2.firstamres.com/propertylink?UserID=rapstaff&AgentLastName=Staff&AgentFirstName=Rapattoni&CustomerGroupName=Sedona
> Verde
> Valley&UserPW=sedona','_Realist')"
> igClass="IGMenuItem"> <U>T</U>ax </TD>
> <TD accessKey="R"
> onkeydown="igmenu_kbMD(this,event);"
> id="uwmMainMenu_4" class="IGMenuItem"
> onfocus="igmenu_kbFocus(this,event);"
> onkeyup="igmenu_kbNav(this,event);"
> align="center" igTop="1"
> igHov="IGMenuItemHover" igTag="3"
> igFrame="_Script"
> igUrl="Cart_OnClick()"
> igClass="IGMenuItem"> Ca<U>r</U>t
> </TD> <TD accessKey="C"
> onkeydown="igmenu_kbMD(this,event);"
> id="uwmMainMenu_5" class="IGMenuItem"
> onfocus="igmenu_kbFocus(this,event);"
> onkeyup="igmenu_kbNav(this,event);"
> align="center" igTop="1"
> igChildId="uwmMainMenu_5M"
> igHov="IGMenuItemHover" igTag="4"
> igClass="IGMenuItem"> <U>C</U>ontacts
> </TD> <TD accessKey="N"
> onkeydown="igmenu_kbMD(this,event);"
> id="uwmMainMenu_6" class="IGMenuItem"
> onfocus="igmenu_kbFocus(this,event);"
> onkeyup="igmenu_kbNav(this,event);"
> align="center" igTop="1"
> igChildId="uwmMainMenu_6M"
> igHov="IGMenuItemHover" igTag="5"
> igClass="IGMenuItem"> Li<U>n</U>ks
> </TD&g开发者_开发百科t; <TD accessKey="A"
> onkeydown="igmenu_kbMD(this,event);"
> id="uwmMainMenu_7" class="IGMenuItem"
> onfocus="igmenu_kbFocus(this,event);"
> onkeyup="igmenu_kbNav(this,event);"
> align="center" igTop="1"
> igChildId="uwmMainMenu_7M"
> igHov="IGMenuItemHover" igTag="6"
> igClass="IGMenuItem"> <U>A</U>dmin
> </TD> <TD accessKey="H"
> onkeydown="igmenu_kbMD(this,event);"
> id="uwmMainMenu_8" class="IGMenuItem"
> onfocus="igmenu_kbFocus(this,event);"
> onkeyup="igmenu_kbNav(this,event);"
> align="center" igTop="1"
> igChildId="uwmMainMenu_8M"
> igHov="IGMenuItemHover" igTag="7"
> igClass="IGMenuItem"> <U>H</U>elp
> </TD> </TR> </TBODY> </TABLE>
> </DIV></DIV></DIV></DIV></FORM></BODY></HTML>
I tried to use TestWise Recorder on Firefox to see what actual element that I currently access, but FF does not recognize it. :(
Anyone could give me a hint where I missed ?
Thanks,
Chan There are many solutions to your problem Try this one as it works for me
require 'watir'
test_site = "http://svvarmls.rapmlsqa.com/"
ie = Watir::IE.new
ie.goto test_site
ie.text_field( :id, "txtUserName" ).set "rapstaff"
ie.text_field( :id, "txtPassword" ).set "Succ3ss!"
ie.button( :id, "btnSubmit" ).click
table = ie.table(:id,"uwmMainMenu_MainM")
table[1][1].fire_event "onmouseover"
table[1][1].fire_event "onmousedown"
table2 = ie.table(:class, "SubMenu")
table2[7][1].fire_event "onmousedown"
table2[7][1].fire_event "onmouseup"
If your credentials contain sensitive information, I strongly recommend changing the password as google has probably already indexed this thread
Good Luck!
Basim Baassiri
精彩评论