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

拖放没有发生

羊舌琛
2023-03-14

不确定是什么问题。。下面的代码应该可以正常工作。。

import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;

public class jusTrails {

    public static void main(String[] args) {
        System.setProperty("webdriver.gecko.driver", "D:\\bala back up\\personel\\selenium\\Jars\\Drivers\\geckodriver.exe");
        WebDriver driver=new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.manage().timeouts().pageLoadTimeout(20, TimeUnit.SECONDS);

        driver.get("http://www.seleniumeasy.com/test/drag-and-drop-demo.html");
        WebElement onlyOne=driver.findElement(By.xpath("//span[contains(text(), 'Draggable 1')]"));

        System.out.println(onlyOne.getText());
        WebElement dropHere1=driver.findElement(By.xpath("//*[@id='mydropzone']"));
        Actions act=new Actions(driver);
        act.dragAndDrop(onlyOne, dropHere1).build().perform(); //This should work fine.. BUT.

    }

}

我也没有例外,但Dragable 1根本不会动。。我用另一种方法试过,但没有成功。。

Actions builder = new Actions(driver);

Action dragAndDrop = builder.clickAndHold(onlyOne)
    .moveToElement(dropHere1)
    .release(dropHere1)
    .build();

dragAndDrop.perform();

共有1个答案

夏飞跃
2023-03-14

这显然是一个已知的问题,有一个解决方法。就算是红宝石的。

def drag_and_drop(source,target)

    js_filepath=File.dirname(__FILE__)+"/drag_and_drop_helper.js"
    js_file= File.new(js_filepath,"r")
    java_script=""

    while (line=js_file.gets)
      java_script+=line
    end

    js_file.close

    @driver.execute_script(java_script+"$('#{source}').simulateDragDrop({ 
dropTarget: '#{target}'});")

    rescue Exception => e
      puts "ERROR :" + e.to_s

  end
 类似资料:
  • 问题内容: 当我在页面上拖放元素时,该元素将变为“重影”。基本上,它获得一些透明度值。 有什么办法可以做到吗? 问题答案: 看来无法完成。拖动的元素将放入具有自己的,不透明度低于1的容器中。这意味着,虽然可以降低拖动元素的不透明度,但不能使其高于封装元素的不透明度。 这 也许 是可以覆盖此类元素的默认浏览器设置,但因为没有被拖拽过程中添加到DOM它充其量是非常棘手。

  • 问题内容: 嘿,我一直在阅读本教程,以了解PyQt4中的拖放方法。但是,我无法理解以下几点。如果某事能够使我更清楚,那将是很好的。 为什么会有单独的self.button.move()和e.setDropAction()self.button.move()实际不移动按钮本身吗?有人可以解释一下drag.setHotSpot和drag.start()的作用吗?谢谢。 问题答案: 该教程已严重过时。从

  • 拖放是一种非常流行的用户界面模式。它的概念很简单:点击某个对象,并按住鼠标按钮不放,将鼠标移动到另一个区域,然后释放鼠标按钮将对象“放”在这里。拖放功能也流行到了Web 上,成为了一些更传统的配置界面的一种候选方案。 拖放的基本概念很简单:创建一个绝对定位的元素,使其可以用鼠标移动。这个技术源自一种叫做“鼠标拖尾”的经典网页技巧。鼠标拖尾是一个或者多个图片在页面上跟着鼠标指针移动。 单元素鼠标拖尾

  • #div1, #div2 {float:left; width:100px; height:35px; margin:10px;padding:10px;border:1px solid #aaaaaa;} function allowDrop(ev) { ev.preventDefault(); } function drag(ev) { ev.dataTransfer.setData("Tex

  • 我试图使用HTML5拖放在我的网站。dragstart和dragend被解雇,但dragenter,draglet,dragover和下降不工作,直到我刷新页面。 侧边栏中树中的节点应该能够拖动到表中的单元格。树是用jsTree制作的。我已经在火狐、Chrome和IE上尝试过了。他们都有相同的行为。 边栏树(rhtml文件) 删除操作代码(咖啡脚本文件) 表(页面来源) 我试着拉小提琴,但效果很好

  • 最早在网页中引入JavaScript 拖放功能的是IE4。当时,网页中只有两种对象可以拖放:图像和某些文本。拖动图像时,把鼠标放在图像上,按住鼠标不放就可以拖动它。拖动文本时,要先选中文本,然后可以像拖动图像一样拖动被选中的文本。在IE 4 中,唯一有效的放置目标是文本框。到了IE5,拖放功能得到扩展,添加了新的事件,而且几乎网页中的任何元素都可以作为放置目标。IE5.5 更进一步,让网页中的任何