我正在爲我的檢票(框架工作)基礎web應用程序開發自動化測試腳本。自動化檢票框架(Java)基礎web應用程序
我使用Selenium 2.44 jar(插件)和Firefox 23版本,也使用Firefox插件,Firebug檢查Web元素和FirePath以獲取Web元素的xpath。但是我面臨的問題是我的Web應用程序中的HTML ID是動態的,這意味着每當它發生變化時,因爲其中的xpaths也在發生變化,並且在查找元素時,我得到「NoSuchElementException」。
我正在爲我的檢票(框架工作)基礎web應用程序開發自動化測試腳本。自動化檢票框架(Java)基礎web應用程序
我使用Selenium 2.44 jar(插件)和Firefox 23版本,也使用Firefox插件,Firebug檢查Web元素和FirePath以獲取Web元素的xpath。但是我面臨的問題是我的Web應用程序中的HTML ID是動態的,這意味着每當它發生變化時,因爲其中的xpaths也在發生變化,並且在查找元素時,我得到「NoSuchElementException」。
您在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>
這將是很好的,如果你提供你的網頁的HTML源代碼的片段。 現在我可以建議,你可以嘗試一些動態Xpath函數,如contains(),following()等。 只是舉例: By.xpath(「// div [contains(text(),'some文本'),並且包含(@ class,'整個類名或類名的一部分,如果其動態')]/following:*「) 或 By.xpath(」// div [contains文本(),'一些文本'),幷包含(@ class,'整個類名或部分類名不會改變,如果它的動態')]/following:div「)
像這樣。
雅@priya謝謝你同樣的事情爲我工作...作爲一個新手,我無法構建XPath查詢..現在其工作。 ...謝謝:) –
@SnehaNigam很高興知道。 如果有幫助,您也可以投票回答。 :) –
使用CSS選擇器。如果您需要選擇器的幫助,請添加帶有ID值的視圖示例。 – lauda