Java WebDriver>上下文菜单WebDriver 2.42和Firefox v31
我有Firefox23和webdriver 2.35,下面的代码点击上下文菜单工作正常,但我最近将firefox升级到31版,webdriver升级到2.42版,我无法点击上下文菜单Java WebDriver>上下文菜单WebDriver 2.42和Firefox v31,java,selenium-webdriver,Java,Selenium Webdriver,我有Firefox23和webdriver 2.35,下面的代码点击上下文菜单工作正常,但我最近将firefox升级到31版,webdriver升级到2.42版,我无法点击上下文菜单 public static void clickTreeMenuItem(String treeNodeText, String menuItemText){ rightClickTreeNode(treeNodeText); contextClick(menuItemText); } pub
public static void clickTreeMenuItem(String treeNodeText, String menuItemText){
rightClickTreeNode(treeNodeText);
contextClick(menuItemText);
}
public static void rightClickTreeNode(String nodeText){
List<WebElement> treeNodes = driver.findElements(By.className("class-name"));
for(WebElement treeNode : treeNodes){
if(treeNode.getText().equals(nodeText)){
Actions builder = new Actions(driver);
Action rightClick = builder.contextClick(treeNode).build();
rightClick.perform();
}
}
}
public static void contextClick(String menuItem){
waitFor(ExpectedConditions.presenceOfAllElementsLocatedBy(By.className("x-menu-list-item")));
List<WebElement> allMenuItems = driver.findElements(By.className("x-menu-list-item"));
for(WebElement item : allMenuItems){
if(item.getText().equals(menuItem)){
item.click();
break;
}
}
}
<div class=" x-menu-list" style="height: 72px;">
<div id="x-menu-el-xx" class="x-menu-list-item ">
<span id="com.xx" class=" x-menu-item x-unselectable x-component" unselectable="on" style="color: black;">
New Item
</span>
</div>
上下文菜单的HTML源代码
public static void clickTreeMenuItem(String treeNodeText, String menuItemText){
rightClickTreeNode(treeNodeText);
contextClick(menuItemText);
}
public static void rightClickTreeNode(String nodeText){
List<WebElement> treeNodes = driver.findElements(By.className("class-name"));
for(WebElement treeNode : treeNodes){
if(treeNode.getText().equals(nodeText)){
Actions builder = new Actions(driver);
Action rightClick = builder.contextClick(treeNode).build();
rightClick.perform();
}
}
}
public static void contextClick(String menuItem){
waitFor(ExpectedConditions.presenceOfAllElementsLocatedBy(By.className("x-menu-list-item")));
List<WebElement> allMenuItems = driver.findElements(By.className("x-menu-list-item"));
for(WebElement item : allMenuItems){
if(item.getText().equals(menuItem)){
item.click();
break;
}
}
}
<div class=" x-menu-list" style="height: 72px;">
<div id="x-menu-el-xx" class="x-menu-list-item ">
<span id="com.xx" class=" x-menu-item x-unselectable x-component" unselectable="on" style="color: black;">
New Item
</span>
</div>
当前行为:我看到右键单击发生,并看到上下文菜单,但单击没有发生。我看不到任何相关的例外,webdriver正在进入下一步。有指针吗?当我使用“x-menu-item”而不是“x-menu-list-item”时,问题得到了解决
public static void contextClick(String menuItem){
waitFor(ExpectedConditions.presenceOfAllElementsLocatedBy(By.className("x-menu-item")));
List<WebElement> allMenuItems = driver.findElements(By.className("x-menu-item"));
for(WebElement item : allMenuItems){
if(item.getText().equals(menuItem)){
item.click();
break;
}
}
}