2012-11-07 79 views
0

我不能點擊菜單項(創建缺陷...)作爲如圖所示單擊在測試我的web應用,並得到以下錯誤硒:無法在菜單項

**org.openqa.selenium.ElementNotVisibleException: Cannot click on element** 

I would like to click on "Create Defect..."

下面的代碼點擊圖像(手圖像)上如該圖所示

driver.findElement(By.xpath("//div[@id='divToolbar']/div/table/tbody/tr/td[2]")).click(); 

然後菜單打開。現在我想點擊菜單項。 我使用下面的代碼爲這個

 driver.findElement(By.xpath("html/body/div[10]/div/div/div/div/div/ul/li[1]")).click(); 

,但我得到了上面提到的例外

這我在HTML內容:

<div class="mmenu" style="display: block; left: 49px; top: 37px;"> 
<div class="mmenu-content"> 
<div class="mmenu-border" style="width: 231px;"> 
<div class="mmenu-inset" style="width: 231px;"> 
<div class="mmenu-group first-child last-child"> 
<div class="mmenu-column first-child last-child"> 
<h3> 
<ul> 
<li id="liemx360120335239.81635" class="link" menuuid="emx360120335239.81635"> 
<span class="icon"> 
<span>Create Defect...</span> 
</li> 
<li id="liemx172704021676.66638" class="link" menuuid="emx172704021676.66638"> 
</ul> 
</div> 
</div> 
</div> 
</div> 
</div> 
</div> 

能否請你建議?

回答

0

你試過driver.findElement(By.xpath( 「//跨度[包含(文本() '創建缺陷......']」))點擊();

+0

你的回答幫了我。現在我可以通過下面的語句爲IE driver.findElement(By.xpath(「// span [text()='Create Defect ...']」))點擊「Create Defect ...」。點擊();但是,應用程序打開「創建缺陷」窗口但無法加載。只是爲了讓你知道,對於Firefox我的第一個試用版driver.findElement(By.xpath(「html/body/div [10]/div/div/div/div/div/ul/li [1]」))。點擊(); – user981116

+0

我是stackoverflow的訪客buti認爲我需要15聲望來投票你的答案。 – user981116

+0

Okies,只是做到了。謝謝。 – user981116

0

我想你的問題是第二個菜單是不可見的,如果WebDriver在一個不可見的定位器上操作,WebDriver會拋出ElementNotVisibleException 我認爲你必須保持第一個菜單打開,因爲當你嘗試點擊它時,第二個菜單是可見的。 我用Actions類 儘量做到以下幾點:

new Actions(getWebDriver()).moveToElement(driver.findElement(By.xpath(...))).perform(); 

並嘗試點擊第二個定位器之後。如果仍有問題,請嘗試在同一操作中鏈接兩個命令。