我有两个div.
var e1 = element(by.id('draggable-0'));
var e2 = element(by.id('dropContainer-0'));
Run Code Online (Sandbox Code Playgroud)
我想删除e1在e2.IE执行拖放在E2E测试用例跌幅为angular2.
我尝试下面的代码:
var e1 = element(by.id('draggable-0'));
var e2 = element(by.id('dropContainer-0'));
browser.driver.actions().dragAndDrop(e1.getWebElement(),e2.getWebElement()).perform();
browser.sleep(2000);
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我的chrome被打开但没有任何反应.
任何输入?
谢谢.
我试图阻止用户移动第一个元素dragulaService,代码第一次运行没有任何错误,但是当我离开这个页面然后再次打开它时,我收到错误.
导致错误的代码:
constructor(public service:SmartTablesService, private dragulaService:DragulaService) {
dragulaService.setOptions('nested-bag', {
revertOnSpill: true,
moves: function (el:any, container:any, handle:any):any {
if (handle.className === 'sorting-table-title') {
return false;
} else {
return true;
}
}
});
Run Code Online (Sandbox Code Playgroud)
错误是:
error_handler.js:48 EXCEPTION:未捕获(在承诺中):错误:./SortTableComponent类中的错误SortTableComponent_Host - 内联模板:0:0引起:名为:"nested-bag"的包已存在.错误:包名为:"nested-bag"已经存在.在DragulaService.add(http://platform.local:8080/3.chunk.js:1070:19)处于DragulaService.setOptions(http://platform.local:8080/3.chunk.js:1099:24)在新的SortTableComponent(http://platform.local:8080/3.chunk.js:1311:24)
当我试图获得我的批处理脚本的提升权限时,我发现了两个相关的SO问题
......这导致了部分解决的问题.出于某种原因,我遇到了在VBS脚本中包含空格的文件路径参数的命令行传递问题,所以我试图将解决方案分成3部分并集中在内部(VBS)步骤,然后通过调用a添加最后一步尽管与VBS脚本位于同一文件夹中,但无法找到该VBS中的批处理.我发现,拖放不是"那么简单" 和它使用时的不同.vbs,而不是.bat或.exe用作放置目标.
如果我拖动文件并将其拖放到可执行文件(exe)或批处理文件(bat,cmd)上,则当前工作目录由拖动项目的来源确定.其目录设置为处理它的程序或脚本的工作目录.
如果我将文件放到VBS脚本上,则会有所不同.在Windows 8.1 x64上,C:\Windows\System32即使参数与VBS位于同一文件夹中,我也会观察到它.
我可以简单地使用这样的批处理文件(如拖放中继)
my.vbs %*
Run Code Online (Sandbox Code Playgroud)
获得"正常" .bat行为(drop source指示CWD),但我也想了解它.
这是一个错误还是一个功能?它是否与所有Windows版本一致?
编辑:为显示我如何到达的问题添加背景(在顶部)(+次要更正)
我必须自动化一个Web应用程序,其中包含一个拖放区域,用于从本地文件系统上载文件。我的测试环境是使用Python开发的。对于自动化测试,我使用了Selenium,但是一旦上传区域是div标签(没有输入标签-这样我就很容易),就不可能从文件系统中拖动文件。
我读了很多不同的文章,但到目前为止,没有一篇对我有用。重要的是要强调一点,我对使用AutoIT并不感兴趣,仅对带硒的本机python感兴趣。
我找到了这个Selenium:从文件系统拖放到webdriver?看起来确实很有前途的东西,但是我不知道该如何适应Python。
提前非常感谢您!
我想在Aurelia中实现一个简单的拖放操作,但似乎无法触发drop事件.
<template>
<div class="container">
<div class="row">
<div draggable="true" dragstart.delegate="dragStart($event)">Drag Me</div>
</div>
<div class="row">
<div class="upload-drop-zone" dragenter.delegate="dragEnter($event)" drop.delegate="dragDrop($event)">Drop Area</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
export class DemoPage {
dragStart(event) {
console.log('dragstart', event);
return true;
}
dragEnter(event) {
console.log('dragEnter', event);
return true;
}
dragDrop(event) {
console.log('dragDrop', event);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏 - 谢谢.马特
我RecyclerView的布局是GridLayout3列。我正在使用ItemTouchHelper拖放GridLayout的RecyclerView。在我的适配器中,有一种方法onItemMove()可以通知我我已移动的物品。它只交换那些ArrayList我拖放过的项目。但是由于拖放,其他元素也会发生变化。我也想更新他们在中的职位ArrayList。
这是我的Recyclerview的适配器:
public class GridAdapter extends RecyclerView.Adapter<GridAdapter.MyViewHolder> implements com.sagar.quizdemo.helper.ItemTouchHelperAdapter {
String[] str = {"Level 1", "Level 2", "Level 3", "Level 4", "Level 5", "Level 6", "Level 7", "Level 8", "Level 9"};
List<String> itemList, actualList;
LayoutInflater inflater;
Context context;
private final OnStartDragListener mDragStartListener;
public GridAdapter(Context context, OnStartDragListener dragStartListener) {
this.context = context;
mDragStartListener = dragStartListener;
inflater = LayoutInflater.from(context);
itemList = new ArrayList<>();
actualList = new ArrayList<>(Arrays.asList(str));
} …Run Code Online (Sandbox Code Playgroud) java android drag-and-drop android-recyclerview itemtouchhelper
只是想知道如何在iOS模拟器中调用多个拖动.我显然可以使用单个项目执行此操作,但如何添加到当前拖动?
JMeter GUI(Swing)具有拖放功能,
问题是,有时我需要将组件拖到层次结构的最后一个(例如,线程组中的最后一个请求),并且GUI似乎允许它,但是当释放鼠标键时没有任何反应.
例如下面我不能将Request 3作为最后一个组件放到它的位置,我必须进行2次拖放请求:请求1和2来发出1,2,3的顺序.

是摆动限制还是JMeter有理由禁用它?
我试图让我的拖放工作在JavaScript中正常工作,而不必显式扫描父元素或其他ID,类循环和其他hacky魔术.
现在,当我拖动元素池中的一个元素并将其拖动到灰色区域时,该元素将被复制到放置区域(到目前为止一切正确).我基本上复制拖动元素的HTML,清除放置区域(目标)并向其添加新元素.
当您在放置区中已经有一些子元素并将其拖到子元素上时,问题就开始了.然后drop事件中的目标是子元素,而不是附加事件的div.这会导致拖动的元素清除并将其自身复制到子项而不是drop容器中.
预期的结果应该是,无论是将它放在子节点上还是直接放在主放置容器上,目标应始终是父节点,因为我正在使用事件捕获模式.
这是我在JS Fiddle中的示例代码.我正在使用带捕获的事件监听器,但它似乎正在进行冒泡阶段而忽略了捕获阶段.为什么?
这样做的正确方法是什么?
function onDrag(ev) {
var el = ev.target;
//console.log("Drag: " + ev.target.outerHTML)
ev.dataTransfer.setData('text/html', ev.target.outerHTML);
}
function onContainerOver(ev) {
ev.preventDefault();
ev.dataTransfer.dropEffect = "move"
}
function onContainerDrop(ev) {
ev.preventDefault();
//console.log("Drop: " + ev.dataTransfer.getData("text/html"))
ev.target.innerHTML = ev.dataTransfer.getData("text/html");
}
document.getElementById('target').addEventListener('drop', onContainerDrop, true); // This should not bubble, but it does. Target is always the child first rather than the element where the event listener resides. Why???Run Code Online (Sandbox Code Playgroud)
#list {}
.el {
padding: 5px;
margin: 10px;
border: solid 1px black; …Run Code Online (Sandbox Code Playgroud)我正在尝试使用Python和Selenium拖放。
我有两个带有行的容器,这些行指示文件名,并且通过拖放操作,我想将一个文件从第一个容器传输到第二个容器。
我在互联网上看到硒和拖放库存在一些问题,我不确定如何使这项工作有效。
由于浏览器和驱动程序的版本起着重要作用,请查看我使用的浏览器和驱动程序:

我尝试拖放的方式如下:
time.sleep(15)
source_element = self.browser.find_element_by_css_selector('#transfer-tape-listing-nst0 > tbody > tr.file.transfer-tape-item.ui-draggable.ui-draggable-handle > td.listing-name')
dest_element = self.browser.find_element_by_css_selector('#transfer-location-listing > tbody > tr:nth-child(1) > td.listing-name.ui-droppable > span.listing-name-label')
ActionChains(self.browser).drag_and_drop(source_element, dest_element).perform()
Run Code Online (Sandbox Code Playgroud)
我的驱动程序具有以下配置:
def set_up_browser():
display = Display(visible=0, size=(1200, 800))
display.start()
selected_browser = config_section_map('Test')['browser']
browser = ''
if selected_browser == 'Firefox':
opts = FirefoxOptions()
opts.set_headless(headless=False)
firefox_profile = webdriver.FirefoxProfile()
firefox_profile.set_preference("browser.privatebrowsing.autostart", False)
firefox_profile.set_preference("marionette", True) # remove if causing issues
browser = webdriver.Firefox(executable_path="/usr/bin/drivers/geckodriver", firefox_profile=firefox_profile, firefox_options=opts)
elif selected_browser == 'Chrome':
opts = ChromeOptions()
opts.set_headless(headless=False)
opts.add_argument("--no-sandbox")
opts.add_argument("--incognito")
browser …Run Code Online (Sandbox Code Playgroud) drag-and-drop ×10
angular ×2
javascript ×2
python ×2
selenium ×2
android ×1
aurelia ×1
batch-file ×1
dom-events ×1
e2e-testing ×1
html ×1
html5 ×1
ios ×1
ios11 ×1
java ×1
jmeter ×1
ng2-dragula ×1
protractor ×1
swing ×1
testing ×1
vbscript ×1
windows ×1