2012-10-29 29 views
0

我想通過javascript執行程序模擬錨點標記上的右鍵單擊事件。但是收到錯誤「ReferenceError:OpenQA未定義」。 我不確定這是否是在硒腳本中調用JS函數的正確方法。ExecuteJavaScript失敗,錯誤「ReferenceError:OpenQA未定義」

IWebElement folderAtag = driver.FindElement(By.XPath("//[@title='folderA911536']"));   
IJavaScriptExecutor js2 = ((IJavaScriptExecutor)driver); 

     js2.ExecuteScript(
      "function contextMenuClick(element){" + 

      "var evt = element.ownerDocument.createEvent('MouseEvents');" + 

       "var RIGHT_CLICK_BUTTON_CODE = 2; " + 

       " evt.initMouseEvent('contextmenu', true, true," + 
       " element.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, " + 
       " false, false, false, RIGHT_CLICK_BUTTON_CODE, null); " + 

       " if (document.createEventObject){ " + 

       " return element.fireEvent('onclick', evt) " + 
       " } " + 
       " };" + 
      "contextMenuClick(" + folderAtag + ");" 
      ); 
+0

是什麼瀏覽器您使用? – Arran

+0

它是Firefox 14.01 – RashmiPires

回答

0

正確執行js代碼我使用stringBuilder。例如如下:

public void jsClick(String key) throws IOException { 
     JavascriptExecutor js = (JavascriptExecutor) driver; 
     StringBuilder stringBuilder = new StringBuilder(); 
     stringBuilder.append("var x = $(\'"+propertyKeysLoader(key) +"\');"); 
     stringBuilder.append("x.click();"); 
     js.executeScript(stringBuilder.toString()); 
    } 

順便說一下,在元素上單擊鼠標右鍵我想解決這樣:

WebElement elem = driver.findElement(By.xpath("//[@title='folderA911536']")); 
new Actions(driver).contextClick(elem).perform(); 
+0

使用Action ContextClick不能正常工作。它是右鍵單擊文件夾樹中的4個層次,這真的很奇怪。所以我試圖找出是否有另一種方法可以工作。 – RashmiPires

相關問題