Как получить доступ к каждому элементу нескольких таблиц? - PullRequest
2 голосов
/ 27 июля 2010

В настоящее время я пишу тестовый скрипт для наших систем MLS (Multiple Listing System). Сайт в основном написан на C # .NET.

И это источник HTML:

> <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> <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>

Я пытался использовать TestWise Recorder в Firefox, чтобы увидеть, к какому фактическому элементу я сейчас обращаюсь, но FF не распознает его. (

Кто-нибудь может дать мне подсказку, где я пропустил?

Спасибо

1 Ответ

2 голосов
/ 28 июля 2010

Chan Есть много решений вашей проблемы Попробуйте это, как это работает для меня


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"

Если ваши учетные данные содержат конфиденциальную информацию, я настоятельно рекомендую изменить пароль, поскольку Google, вероятно, уже проиндексировал эту тему

Удачи!

Басим Баассири

...