2014-03-04 22 views
0

Screenshot如何點擊這已經是截斷它的一部分

我有一個鏈接文本如上圖所示,我試圖找到並使用點擊它linktext的,

driver.findElement(By.linkText("Front printer (Based on price list) – UPDATE")).click(); 
driver.findElement(By.partialLinkText("Front printer (Based on price list) – UPDATE1")).click(); 

鏈接文本已經從excel文件驅動數據(以上只是爲了顯示我發佈的原始鏈接文本是什麼) 問題是每當它嘗試搜索它時顯示nosuchelementexception()。由於鏈接文本被截斷了一些字符。

我不能使用XPath,因爲元素是動態的,它不斷改變它在列表網格中的位置,ID不斷變化,所以請建議一種方法,我需要選擇元素linktext或partiallinktext。

HTML代碼

<tr id="ctl00_ContentPlaceHolder1_RadGrid1_ctl00__0" class="rgRow"> 

    < td align="left" style="width:3%;"> 

    <td align="left" style="width:45%;"> 

    <div style="float: left; width: 99%; overflow: hidden; height: 15px"> 

    <a href="http://192.168.1.6/eprint_prod_3.8/settings/digital_press_add.aspx?type=edit& id=735" title="Front printer (Based on price list) - UPDATE"> 

    <span id="ctl00_ContentPlaceHolder1_RadGrid1_ctl00_ctl04_lblGuillotineName" class="label_GV" style="display:inline-block;width:100%;">Front printer (Based on price list) - UPDATE</span> 

    </a> 

    </div> 

    </td> 

    <td align="left" style="width:52%;"> 

    <td align="center" style="width:5%;"> 

    <td align="center" style="width:10%;"> 

    < /tr> 
+0

你能提供html代碼嗎? – Amith

回答

2

由於實際的鏈接文本被截斷,用使用獲得的唯一匹配所需的字符至少應最小號的子字符串搜索。

請注意,使用By.partialLinkText,必須提供部分文本來搜索,就像這樣。

//assuming the below string is read from excel 
String searchTxt = "Front printer (Based on price list) – ADD 1"; 
//try to search for the link using the first 30 chars 
driver.findElement(By.partialLinkText(searchTxt.substring(0,30))).click(); 

上述代碼將根據提供的部分文本返回它找到的第一個匹配項。

+0

在頂部添加'import java.io。*;'通常會有所幫助。 – Faiz

+0

driver.findElement(By.partialLinkText(CellVal.substring(0,25))。click(); - 顯示錯誤 - 方法click()未定義爲類型按 –

+0

@ Santhosh.S:已經編輯過代碼添加一個缺少的')'。你應該能夠捕捉並修復這些錯誤:) – Faiz

相關問題