2013-04-11 108 views
0

這是我的一個HTML代碼

 <table cellpadding="0" cellspacing="0" style="table-layout: fixed;"> 
    <tbody> 
    <tr> 
    <td style="line-height: 30px;"> 
No. of records: <span data-bind="text: ActiveGrade().length">12</span>&nbsp;| 
<a href="#" data-bind="click: $root.lnkAdd">New Grade</a> 
    </td> 
    </tr> 
    </tbody></table> 

當我們得到了上面的HREF位置的XPath和添加點擊的方法,但在執行過程中其無法點擊

我的Xpath:

@FindBy(xpath="//*[@id='GradeListView1']/table/tbody/tr/td[2]/table[1]/tbody/tr/td/a") 

public WebElement new_grade 

new_grade.click() 

我要點擊 「新建級」 超鏈接(在點擊其開放的新的彈出wndow)

感謝

ptabu

回答

0

嘗試了這一點:

driver.findElement(By.xpath("//table/tbody/tr/td/a[contains(.,'New Grade')]"); 

和你的HTML,而是採用了data-bind,你嘗試做使用onClick

<a href="#" onClick="$root.lnkAdd">New Grade</a> 
+0

上面的代碼在執行過程中還沒有執行仍然不可點擊,我也使用了GetText方法,但沒有解決我的問題 – Prabu 2013-04-11 07:10:36

+0

你能在html中顯示你的渲染嗎?你真的抓住了這個元素嗎? – e1che 2013-04-11 07:12:34

+0

<表CELLSPACING = 「0」 CELLPADDING = 「0」 風格= 「表格的佈局:固定;」> 號的記錄: < span data-bind =「text:ActiveGrade()。length」> 12 | New Grade Prabu 2013-04-11 07:27:34

0

有2種方式來實現它,

  1. 您的XPath更改爲//a[text()='New Grade']
  2. 查找您的鏈接,By.linktext("//a[text()='New Grade']")

給他們一個嘗試,他們必須工作爲你。

+0

對不起,我仍然無法點擊該超鏈接,這是用MVC Arch(.net)設計的,這是我的第一個項目(測試)與MVC – Prabu 2013-04-11 12:02:06

+0

New Grade,在該視圖模型MVC)他們必須調用函數lnkadd – Prabu 2013-04-11 12:36:43

+0

我不知道'數據綁定'。你應該和你的開發者交談,並且知道如何處理它。 – user2087450 2013-04-11 13:20:33