Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java WebDriver>上下文菜单WebDriver 2.42和Firefox v31_Java_Selenium Webdriver - Fatal编程技术网

Java WebDriver>上下文菜单WebDriver 2.42和Firefox v31

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

我有Firefox23和webdriver 2.35,下面的代码点击上下文菜单工作正常,但我最近将firefox升级到31版,webdriver升级到2.42版,我无法点击上下文菜单

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;
    }
}       
}