2013-08-24 178 views
0

我用Selenium Java編寫了一個測試用例來登錄,然後點擊Dock菜單中的一個項目。 它登錄正常,但不會點擊停靠欄菜單項。 這是我寫的代碼。任何人都可以告訴我什麼是錯的?爲什麼這一步不起作用?

driver.get(baseUrl); 
driver.findElement(By.id("content")).click(); 
driver.findElement(By.id("sign-in")).click(); 
driver.findElement(By.id("_58_login")).clear(); 
driver.findElement(By.id("_58_login")).sendKeys("basand"); 
driver.findElement(By.id("_58_password")).clear(); 
driver.findElement(By.id("_58_password")).sendKeys("pass"); 
driver.findElement(By.xpath("//input[@type='submit']")).click(); 

driver.switchTo().frame(driver.findElement(By.id("DockMenuFrame"))); 
driver.findElement(By.linkText("APP. POS. TM.")).click(); 
driver.findElement(By.xpath("//a[@id='docMenuForm:j_id46_Function_850010408']/span")).click(); 
+0

運行此代碼時出現什麼樣的錯誤? –

+0

沒有錯誤,只是不要點擊那個框架。 這是可能的,這個框架是在另一個框架下,需要先選擇? – 2ousy

+0

是的,可能的話,檢查tabindex的值,並在fininlement的tabindex基礎上構建xpath。 –

回答

0

問題可能與您的SwitchTo().frame()聲明.webelement重載版本似乎使用以前找到的元素。在我的代碼中,我不得不使用 Driver.SwitchTo()。DefaultContent()在嘗試選擇一個元素之前轉到頂級框架,然後使用元素heirarchy轉換框架。