2012-09-10 27 views
0

我在頁面上有2個表格。這兩個表包含一個鏈接稱爲付款方式:點擊頁面上第二張表格中的鏈接,使用Selenium的webdriver

//driver.findElement(By.xpath("//table[@class = 'subMenu']/tr[td[//a[contains(text(), 'Payment')]]]")).click(); 

當利用上面的代碼:

<table class='topMenu' cellpadding='0' cellspacing='0'> 
    <tr class='null'> 
    <td> 
     <a class='logoClient' href="http://www.txtag.org" target="_blank"> 
     <img class='imgNoBorder' src='/Violation/Images/logos/logo-client.gif' /> 
     </a> 
    </td> 
    <td class='iconBox'> 
     <a href="#" accesskey='S' class="iconSearchLink" onfocus="javascript:nav('login/secure/loadSearch.action?validate=n&cmd=clearsearch&', 'Search-act')"> 
     <u>S</u>earch</a> 
    </td> 
    <td class='iconBox'> 
     <a href="#" accesskey='E' class="iconEnrollLink" onfocus="javascript:nav('enroll.do?cmd=goto&type=reg&', 'Enrollment-reg')"> 
     <u>E</u>nroll</a> 
    </td> 
    <td class='iconBox'> 
     <a href="#" accesskey='C' class="iconContactLink" onfocus="javascript:navCheckAcct('searchNoteHistory.do', 'Contact-not')"> 
     <u>C</u>ontact</a> 
    </td> 
    <td class='iconBox'> 
     <a href="#" accesskey='H' class="iconHistoryActive" onfocus="javascript:navCheckAcct('sysTran.do?cmd=gotoRefSch&updateDate=07-12-12', 'History-act')"> 
     <u>H</u>istory</a> 
    </td> 
    <td class='iconBox'> 
     <a href="#" accesskey='P' class="iconPaymentLink" onfocus="javascript:navCheckAcct('searchPaymentAccount.do','Payment-pay')"> 
     <u>P</u>ayment</a> 
    </td> 
    <td class='iconBox'> 
     <a href="#" accesskey='A' class="iconAccountLink" onfocus="javascript:navCheckAcct('account.do','Account-inf')"> 
     <u>A</u>ccount</a> 
    </td> 
    <td class='iconBox'> 
     <a href="#" accesskey='I' class="iconInventoryLink" onfocus="javascript:nav('inventoryReconcile.do?cmd=goto&cancel=yes','Inventory-rec')"> 
     <u>I</u>nventory</a> 
    </td> 
    <td class='iconBox'> 
     <a href="#" accesskey='M' class="iconImgProcLink" onfocus="javascript:nav('supervisorReview.do?cmd=goto', '')">I<u>m</u>age</a> 
    </td> 
    <td class='iconBox'> 
     <a href="#" class="iconReportDisabled"> 
     <u>R</u>eports</a> 
    </td> 
    <td class='iconBox'> 
     <a href="#" accesskey='L' class="iconLogoutLink" onfocus="javascript:nav('logout.do?cmd=logout', '')"> 
     <u>L</u>og Out</a> 
    </td> 
    <td class='logoCompanyImage200'> 
     <img class='imgNoBorder' src='/Violation/Images/logos/logo-company.gif' /> 
    </td> 
    </tr> 
</table> 
<table class='subMenu' cellpadding='0' cellspacing='0'> 
    <tr> 
    <td> 
     <ul class="lavaLampWithImage" id="1"> 
     <li class="doesnotexist"/> 
     <a style="cursor: hand; " onClick="javascript:navCheckAcct('gotoTollMit.do', 'History-tol')">Tag Tolls</a> 
     </li> 
     <li class="doesnotexist"/> 
     <a style="cursor: hand; " onClick="javascript:navCheckAcct('gotoMitigation.do', 'History-vio')">Image Tolls</a> 
     </li> 
     <li class="doesnotexist"/> 
     <a style="cursor: hand; " onClick="javascript:nav('paymentHistory.do?cmd=feeHistory', 'History-fee')">Fees</a> 
     </li> 
     <li class="current"/> 
     <a style="cursor: hand; " onClick="javascript:navCheckAcct('sysTran.do?cmd=goto', 'History-act')">Activity</a> 
     </li> 
     <li class="doesnotexist"/> 
     <a style="cursor: hand; " onClick="javascript:navCheckAcct('history.do?cmd=status&', 'History-sta')">Status</a> 
     </li> 
     <li class="doesnotexist"/> 
     <a style="cursor: hand; " onClick="javascript:navCheckAcct('history.do?cmd=veh&', 'History-veh')">Vehicle</a> 
     </li> 
     <li class="doesnotexist"/> 
     <a style="cursor: hand; " onClick="javascript:navCheckAcct('history.do?cmd=tag&', 'History-tag')">Transponder</a> 
     </li> 
     <li class="doesnotexist"/> 
     <a style="cursor: hand; " onClick="javascript:navCheckAcct('history.do?cmd=demo&', 'History-dem')">Personal Info</a> 
     </li> 
     <li class="doesnotexist"/> 
     <a style="cursor: hand; " onClick="javascript:navCheckAcct('history.do?cmd=pay&', 'History-pay')">Payment</a> 
     </li> 
     <li class="doesnotexist"/> 
     <a style="cursor: hand; " onClick="javascript:navCheckAcct('history.do?cmd=stmt&', 'History-stm')">Statement</a> 
     </li> 
     <li class="doesnotexist"/> 
     <a style="cursor: hand; " onClick="javascript:navCheckAcct('bankruptcy.do?cmd=bankruptcy', 'History-ban')">Bankruptcy</a> 
     </li> 
     </ul> 
    </td> 
    </tr> 
</table> 

我試圖點擊鏈接付款是在第二個表,可以使用下面的代碼名爲subMenu ,該程序不再拋出,並指出該元素無法找到;但是,鏈接不會被點擊。

回答

0

xpath的問題在於它返回了tr元素。我假設你想要鏈接元素。

嘗試使用XPath:

//table[@class = 'subMenu']//a[contains(text(), 'Payment')] 
+0

是的,但上面的腳本仍不會點擊的慾望鏈接。 –

+0

實際上通過設置WebElement然後單擊執行單擊允許這兩個函數。 WebElement cellValue = driver.findElement(By.xpath(「// table [@class ='」+ findBy +「'] // a [contains(text(),''+ elem +'')]」)); \t \t cellValue.click(); driver.findElement(By.xpath(「// table [@class ='」+ findBy +「'] // a [contains(text(),'」+ elem +「')]」))。click( ); –

相關問題