【发布时间】:2015-04-09 05:54:26
【问题描述】:
在过去的 5 天里,我一直在寻找任何有效的拖放解决方案。 所以,
Selenium.WebDriver 2.44.0
WebDriver.ChromeDriver.win32 2.13.0.0
Chrome 最新版本。
C#,页面对象模式。 对不起屏幕上的俄语描述:)
我们有 .net cms。它有页面编辑器。编辑器在父页面中打开,如果在同一域的 iframe 中加载,则要编辑的页面。
我需要将项目(图片、视频等)拖放到 iframe 中的具体容器中。据我了解,CMS 中使用了以下内容:此文件包含以下文件:jQuery 1.11.1 + jQuery UI 1.10.4 + jQuery 迁移 1.2.1 */)。
一段代码:http://screencast.com/t/ArEk54ue
这是拖放过程中的一个场景:
在父内容中,我选择了一些元素 id=someelement。 (字符串未激活)。
我单击并按住元素,将其拉入 iframe。
父页面出现如下代码:
- 子元素从第一步开始出现在字符串中。这是我们的元素。
查看屏幕:http://screencast.com/t/Cio4knwp
- 当我将元素拉到 iframe 时,onmouseover 事件触发并且子字符串出现在以下字符串中:
http://screencast.com/t/cpj3ihlE959
容器在鼠标悬停时将其颜色变为绿色。 iframe 中的容器代码: http://screencast.com/t/Z6QBD6IYuB
我尝试做的事情:
简单的 webdriver 拖放不起作用,因为 iframe 中的目标元素。
按 X、Y 偏移量拖放也不起作用。
-
使用操作拖放:
移动到元素:
公共动作 MoveToElement(IWebElement 元素) { var builder = new Actions(Webdriver); 返回 builder.MoveToElement(element); }
来源 - 我拉的图片
目标 - 容器。
WrapperSelenium.MoveToElement(源) .ClickAndHold(来源) 。建造() .Perform();
WrapperSelenium.SwitchToFrame("WebsiteFrame");
WrapperSelenium.MoveToElement(目标) .Release(目标) 。建造() .Perform();
也不行。
4.我尝试使用一些 Javascript hack,不记得具体是什么 - 没有成功。
-
现在我正在尝试使用 jquery-simulate (https://github.com/j-ulrich/jquery-simulate-ext) - 我可以单击一个保持元素,容器变为活动状态,但我无法释放元素并找到目标。
请帮忙!
【问题讨论】:
-
观看下面的视频“youtube.com/watch?v=egdUfivmm-k”可能会对您有所帮助。
-
此方法不适用于 iframe
标签: selenium selenium-webdriver webdriver