2012-11-30 70 views
0

我想測試一個網站。我能夠訪問除菜單項以外的大多數Web元素。使用硒測試Javascript

基本上有一個下拉菜單,我設法用Selenium點擊菜單,從而打開下拉菜單。現在我需要點擊菜單中的一個元素,但菜單似乎是用Javascript編寫的,而不是Web元素,所以我找不到訪問菜單項的方法。

任何想法?我特別需要在Selenium中執行此操作。

更新:-------------------------------------------- ------------------------------------------ 網站上的菜單可能是一個上下文菜單。它使用左鍵單擊打開。任何想法如何我可以訪問其選項?

+1

Selenium RC使用JavaScript與瀏覽器交互,因此您應該也可以與這些元素進行交互。顯示一些HTML會很有幫助。 另外,你有什麼嘗試,直到現在呢? – vidit

+0

我已經嘗試了各種選擇,但沒有得到任何關於這個問題的任何地方。我所做的一切就是通過使用向下和向上箭頭使用selenium向上滾動來訪問菜單元素.sendkey()方法 – Steve

+0

您使用哪種瀏覽器?我們曾經在IE和Chrome中遇到類似的問題。 –

回答

0

我沒有設法訪問菜單項目使用硒以外的點擊菜單,並通過使用向上和向下箭頭滾動通過硒。

我用OpenScript爲了記錄/回放測試,並且它工作。在我的具體情況中,我使用的網站需要設置一個標誌才能使其可測試。如果您在測試網站時遇到問題,您可能需要聯繫開發人員並詢問是否設置了「自動化」標誌。

0

菜單可能是用頁面的javascript構建和操作的,但它會以html的形式存在。您可以使用Selenium與此html進行交互。

+0

菜單中沒有顯示HTML,只要使用開發人員工具選擇菜單按鈕,它就會顯示: 作爲一個孩子,它只是顯示: 文本 - 文件 – Steve

0
WebElement dropDownListBox = driver.findElement(By.id("Menu_id")); 
        Select clickThis = new Select(dropDownListBox);     
        clickThis.selectByVisibleText(activity); //If you know visible text 
       //clickThis.getFirstSelectedOption(); // This will auto select first option in the drop down     
       // clickThis.selectByValue(1); //if you the value of drop down list items 
+0

感謝您的這一點,但標籤不是一個選擇標籤,而是一個td標籤,所以我得到一個異常。 根據「文件」td,所有有一個JavaScript文件,據我所知: '' 下面是:'文本文件' – Steve

0

打開contextmenu並不那麼容易。 直到現在,我通過執行一個javascript觸發鼠標事件(沒有找到其他解決方案)。 這simular到討論: Trigger right-clickSelenium 2 right-click

有時是有用的,如果你只是觸發潛在的JS-功能。 大部分時間開發人員可以給你一個入口點。 這會給你繼續構建你的測試的可能性,並在一段時間後實現了通過觸發事件打開contextmenu的javascript函數。