2016-09-29 85 views
1

我正在爲我的檢票(框架工作)基礎web應用程序開發自動化測試腳本。自動化檢票框架(Java)基礎web應用程序

我使用Selenium 2.44 jar(插件)和Firefox 23版本,也使用Firefox插件,Firebug檢查Web元素和FirePath以獲取Web元素的xpath。但是我面臨的問題是我的Web應用程序中的HTML ID是動態的,這意味着每當它發生變化時,因爲其中的xpaths也在發生變化,並且在查找元素時,我得到「NoSuchElementException」。

+1

使用CSS選擇器。如果您需要選擇器的幫助,請添加帶有ID值的視圖示例。 – lauda

回答

3

您在DebugSettings中設置了setComponentPathAttributeName()。這會導致wicket將它的路徑轉換爲html。只有更改組件層次結構時,路徑纔會更改。

public void init() { 
    super.init(); 

    getDebugSettings().setComponentPathAttributeName("wicketpath"); 
} 

這會使你的HTML看起來像:

<form wicket:id="form" id="form1" wicketpath="form" method="post" action="./?0-3.IFormSubmitListener-form"> 
<div wicket:id="childField" wicketpath="form_childField"></div> 
</form> 
0

這將是很好的,如果你提供你的網頁的HTML源代碼的片段。 現在我可以建議,你可以嘗試一些動態Xpath函數,如contains(),following()等。 只是舉例: By.xpath(「// div [contains(text(),'some文本'),並且包含(@ class,'整個類名或類名的一部分,如果其動態')]/following:*「) 或 By.xpath(」// div [contains文本(),'一些文本'),幷包含(@ class,'整個類名或部分類名不會改變,如果它的動態')]/following:div「)

像這樣。

+0

雅@priya謝謝你同樣的事情爲我工作...作爲一個新手,我無法構建XPath查詢..現在其工作。 ...謝謝:) –

+0

@SnehaNigam很高興知道。 如果有幫助,您也可以投票回答。 :) –