当前位置: 首页 > 知识库问答 >
问题:

拖放后未附加到 DOM 的元素

甄霖
2023-03-14

我正在使用硒网络驱动程序,其中我正在尝试拖放表格的一列。但是一旦我拖放该列,我就得到一个错误“元素不再附加到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个答案

龙令
2023-03-14

显然,您使用此操作更改了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

PS对不起,我的英语不好

 类似资料:
  • 我正在使用本机拖放html5 api开发拖放界面。我们已经在其他部分使用了jQuery拖动,但是它在这个特定部分的表现很差,所以我们使用原始的JavaScript。 本质上,标记看起来像这样... 我为“dragstart”创建一个addEventListener并运行以下函数 它将我的类完美地应用于原始元素,但我似乎不能移动原始元素。浏览器创建克隆/幽灵图像...我看到你可以创建自己的图像显示,

  • 我使用angular ng2 pdf viewer和angular material cdkDrag来拖动元素。在我的后端,我使用hummusJS/hummusRecipe修改pdf文件。 我寻找一种方法来知道我把元素放在pdf文件的什么地方,然后向后端的coordinate发出请求,以知道元素需要放在pdf文件的什么地方。 这是我在nodejs上的函数: 我的客户Angular:

  • 我试图使用Selenium的Action类将JQuery嵌套可排序列表中的源元素拖放到另一个元素。我使用了标准的dragAndDrop方法,并将其分解为clickAndHold、moveToElement和release,但这两种方法都不适用。我甚至尝试使用源元素内部的子元素来拖动,但结果是一样的。 当我运行脚本时,测试返回为已通过,因此我知道正在找到元素,并且选择器有效。Selenium认为拖放

  • 我在Minim Developer上发现了一种奇怪的行为;当我在控制台中运行以下代码时: Minium能够填写“描述”字段 但是,当我尝试在步骤定义中运行相同的代码时,出现以下错误: org . Mozilla . JavaScript . Wrapped exception:Wrapped org . open QA . selenium . staleelementreferenceexcep

  • 问题内容: 如何附加这个HTML字符串 到具有DOM中ID的DIV ? (顺便说一句是不可接受的。) 问题答案: 使用(如果可用),否则使用某种后备。当前所有浏览器均支持 insertAdjacentHTML 。

  • 问题内容: 这是一个js小提琴, 显示了实际的问题。 在组件的render函数中,我使用class渲染div 。在相同组件的功能中,我期望能够选择类并像这样附加到它(因为组件已经安装) 但是,附加内容不会显示。我还尝试(也显示在小提琴中)以相同的方式进行添加,但从父组件到子组件的追加结果相同,并且也从子组件到父组件的空间进行追加结果。我尝试后者的逻辑是,可以更确定dom元素已被渲染。 同时,我能够