2014-02-06 26 views
2

我想使用硒2.39版本自動化網頁。 問題是我無法點擊「加號和減號」控件。我收到以下錯誤: -無法定位元素,硒2.39是否支持DOJO應用程序?

無法找到元素:{「method」:「xpath」,「selector」:「// * [@ id ='dijit__TreeNode_1']/div [1]/img」} 命令持續時間或超時:31.12秒 有關此錯誤的文檔,請訪問:http://seleniumhq.org/exceptions/no_such_element.html

我試圖通過給默認的XPath,也創造了獨特的XPath,但沒有奏效,我嘗試以下

1)//* [@ id ='dijit__TreeNode_1']/div [1]/img =>(默認) 2)// img [@ src ='Dojo/dojo/resources/blank.gif'] [@ data-dojo- attach-point ='expandNode'] 3)// img [@src ='dojo/dojo/resources/blank.gif'] [@ role ='presentation'] [@ class ='dijitTreeExpando dijitTreeExpandoOpened'] [@ data-dojo-attach-point ='expandoNode']

我是剛剛複製的HTML內容的一部分

-

任何人都可以請提出任何其他選擇。 我在HTML內容中也看到了一些像「data-dojo-attach-event」這樣的屬性,該元素是否在硒中被檢測到,因爲它的Dojo應用程序? 請分享您的反饋意見

回答

1

我已經測試了幾個使用Selenium的Dojo webapps,目前爲止沒有問題。 Selenium應獨立於前端框架工作,但您必須正確使用它。

可能首先檢查有些事情:

  1. 你等待頁面加載和小部件進行解析?
  2. 給定的XPath選擇器在瀏覽器中使用時是否工作?我通常使用Google Chrome開發人員工具來查找XPath(通過右鍵單擊可以選擇複製XPath的DOM節點)。如果我記得正確的話,還有一個Firebug插件可以通過XPath查詢查找DOM節點。

如果您沒有看到許多Dojo屬性,那麼第一點可能就是問題所在。當頁面沒有被加載+解析時,它將無法找到DOM節點(但是我認爲它應該能在半分鐘內找到它們)。

例如,等待一個元素(使用WebDriver)加載,你可以使用:

new WebDriverWait(driver, 10).until(ExpectedConditions.presenceOfElementLocated(By.id("myId"))); 
+0

事實上,我做的一樣好,但我也等待一個特定的元素被加載。我用別的東西編輯我的答案,我也是。還要確保XPath是正確的。您還可以嘗試增加步驟之間的時間,這樣可以更輕鬆地驗證瀏覽器中發生的情況。 – g00glen00b

+0

1)我在代碼中給出了這樣的超時,所以我認爲頁面加載不是問題。 2)我選擇的元素在firebug中顯示的默認xpath在XPATH checker中顯示爲其他內容。例如,我的xpath id爲「plus and minus control」爲「// * [@ id ='dijit__TreeNode_1']/div [1]/img「,但在XPATH檢查器中檢查時顯示爲」1「。 所以有什麼建議 – user3278926