有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

拖放后未附加到DOM的java元素

我使用的是selenium webdriver,我试图在其中拖放表的一列。但当我拖放该列时,就会出现一个错误“元素不再附加到DOM”。 下面是我用来拖放元素的代码

            WebElement draggable = objectIdentifierType(
                          objectIdentificationKeyword, objectValue);

            WebElement droppable = GetBrowserDriver.driver.findElement(By.xpath(objectData));                 
            /*WebElement droppable = objectIdentifierType(
                          objectIdentificationKeyword, objectValue);*/
            if (draggable != null) {
                   System.out.println(draggable.getText()+"Draged element");
                   System.out.println(droppable.getText()+"Droped element");
                   //System.out.println(droppable.getText());
                   new Actions(GetBrowserDriver.driver).dragAndDrop(
                                 draggable,droppable).build()
                                 .perform();

                    HTMLReport.bw.write("<script type='text/javascript'>addDetailRow('"
                            + GenericFunctions.testCaseName + "','"
                            + HTMLReport.testcaseTABLESNO() + "','\""
                            + "Drag Value: "
                            + draggable.getText()
                            + "','Drop Value \""
                            + droppable.getText()
                            + "\" ','"
                            + "','Passed' )</script>");
                   // new
                   // Actions(GetBrowserDriver.driver).dragAndDrop(draggable,
                                 // droppable);
                   String actualResult = "The Slider value is changed to the expected value.";
                   CreateExcel updatePassed = new CreateExcel();
                   updatePassed.updatePassedTestSteps(actualResult,
                                 expectedResult, objectData);

共 (1) 个答案

  1. # 1 楼答案

    很明显,您通过此操作更改了DOM。您需要分配draggable.getText()droppable.getText()字符串 我对java不太熟悉,但我认为这应该是可行的:

    if (draggable != null) {
        String draggableText = draggable.getText();
        String droppableText = droppable.getText();
        //continue your code from here using new variables
    

    抱歉我的英语不好