【问题标题】:Automate drag & drop functionality [File Upload] using Selenium WebDriver in C#在 C# 中使用 Selenium WebDriver 自动化拖放功能 [文件上传]
【发布时间】:2016-07-19 21:31:38
【问题描述】:

我需要在 C# 中自动化拖放功能,但找不到正确的方法!这是一个文件上传表单,我需要在那里自动执行拖放操作。

以这种方式进行实验:

public void FileAttachment() {
    PageObjects.UploadFile.Click();
    Driver.Instance.FindElement(By.XPath("//*@id='fileUpload']div")).SendKeys("filepath");
    PageObjects.FileUploadSend.Click();
}

帮我穿过这块石头!

【问题讨论】:

标签: c# selenium-webdriver drag-and-drop


【解决方案1】:

经过一些研究工作,我想分享一下我是如何修复它的!

AutoIt 是类似于 Selenium 的自动化工具,但与 Selenium 不同的是,它用于桌面自动化而不是 Web 自动化。它可以自动执行鼠标移动和击键、桌面窗口、按钮和表单。

安装它并引用到项目中使它发生!

所以代码看起来像,

public void FileAttachment()
{
        PageObjects.UploadFile.Click();
        Driver.Instance.FindElement(By.XPath("//*@id='fileUpload']div")).Click();
        AutoItX3 autoIt = new AutoItX3();
        autoIt.WinActive("Open"); //Differs from Browser to Browser
        autoIt.Send(@"C:Desktop\doccs\trialTest.txt");
        autoIt.Send("{ENTER}");
        Thread.Sleep(1000);
        PageObjects.FileUploadSend.Click();
}

【讨论】:

    【解决方案2】:

    您是否使用 HTML5 拖放功能?我被同样的问题困住了,从各种线程来看,使用 HTML5 拖放从几年前就出现了问题,而且似乎没有得到修复。我从 github 中找到了一些替代方法实现,但它们需要 javascript 执行,以及将代码转换为 C#:http://elementalselenium.com/tips/39-drag-and-drop

    【讨论】:

    • 我正在寻找它用于文件上传,考虑到源和目标不在同一个网页上,但是文件是从本地驱动器拖放到目标中的!
    • 在这种情况下,您将需要使用与 Selenium 结合的其他东西。 Selenium 仅限于浏览器。据我所知,您需要 AutoIt 之类的东西来拖动本地文件,然后执行其余的 Selenium 代码。
    • 没错!这就是我要找的钥匙!感谢您的帮助@Memfisto!
    • @cashanzlo 很高兴我能帮上忙!
    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2015-03-22
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多