2014-04-23 82 views
0

我想在Eclipse中運行先前在Selenium中記錄的測試。我能夠通過使用XPath在Selenium中運行它。但是,在Eclipse中,我得到一個NoSuchElement錯誤。我試圖點擊頁面上的一個標籤,問題是標籤沒有列爲按鈕,但它們實際上是在一個表格中。這是我現在所處的路線。xpath在硒記錄中工作,但不能在Eclipse中運行

driver.findElement(By.xpath("(//div[@onclick=\"parent.frames.contentFrame.location='/messaging/maintfList.jsp?clearUIPath=true&uiPathLabel=Forms'\"])")).click(); 

這是當我檢查元素時顯示的內容。所有選項卡都列爲菜單正常,唯一的區別在於路徑標籤。

div class="menu-normal" onclick="parent.frames.contentFrame.location='/messaging/maintfList.jsp?clearUIPath=true&uiPathLabel=Forms'" 

回答

0

我會嘗試

driver.findElement(By.cssSelector("div[onclick='parent.frames.contentFrame.location='/messaging/maintfList.jsp?clearUIPath=true&uiPathLabel=Forms']")).click(); 

逃避任何需要它在Java。

xpath是一種非常低效的查找方式,而且幾乎總是有一種更好的方法。在這種情況下,CssSelector可以找到你正在尋找的東西。

編輯:我已經走進一看Java文檔,請嘗試這一行,而不是

driver.findElement(By.cssSelector("div[onclick=\"parent.frames.contentFrame.location='/messaging/maintfList.jsp?clearUIPath=true&uiPathLabel=Forms'\"]")).click(); 
+0

當我插入你的線時,我收到一個錯誤,顯示它是無效或非法的字符串。我試圖添加一些不同的東西來使它工作,但沒有運氣。我對此很新。還有什麼我應該看看或嘗試? – user3565238

+0

我不知道java(我是c#開發人員),但我認爲需要在字符串中進行轉義。嘗試在單引號前加一個反斜槓。 – Andrew

0

您也可以嘗試這樣的:

driver.findElement(By.xpath("//div[@class='menu-normal'][2]")).click(); 

//這裏[2]菜單正常的位置號碼在頁面上。讓我們 假設有4個選項卡具有相同的類,你想點擊第二個 一個然後你可以使用上面的代碼。

如果沒有幫助,請分享您的HTML代碼。

+0

它看起來像div是在主html中加載的.jsp文件中。當我試圖用driver.findElement選擇它時,這可能是鏈接斷開的地方嗎? – user3565238

+0

這也是表單標籤內部的代碼。 ​​

user3565238

相關問題