2012-11-07 59 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(); 

并尝试点击第二个定位器之后。如果仍有问题,请尝试在同一操作中链接两个命令。