使用selenium网格测试HTML5应用程序的粘贴功能

使用selenium网格测试HTML5应用程序的粘贴功能,selenium,selenium-grid,Selenium,Selenium Grid,我有一些测试,我可以在我的本地PC上运行,使用webdriver设置内容并粘贴到HTML5应用程序中。当使用远程执行测试的Selenium grid时,如何实现类似的功能 例如,是否可以在地址栏中键入但不实际访问该页面,选择该文本,然后发送CTRL+C键以将文本输入远程剪贴板 这表明这是不可能的,尽管这是6年前写的,但事情可能已经发生了变化,特别是考虑到目前桌面上富HTML5应用程序的流行。selenium不支持用户界面测试的这一方面吗?下面是我们如何在C中本地复制和粘贴示例:

我有一些测试,我可以在我的本地PC上运行,使用webdriver设置内容并粘贴到HTML5应用程序中。当使用远程执行测试的Selenium grid时,如何实现类似的功能

例如,是否可以在地址栏中键入但不实际访问该页面,选择该文本,然后发送CTRL+C键以将文本输入远程剪贴板


这表明这是不可能的,尽管这是6年前写的,但事情可能已经发生了变化,特别是考虑到目前桌面上富HTML5应用程序的流行。selenium不支持用户界面测试的这一方面吗?

下面是我们如何在C中本地复制和粘贴示例:

            Thread thread = new Thread(() => Clipboard.SetText(text));
            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
            thread.Join();
            element.SendKeys(OpenQA.Selenium.Keys.Control + "v");

下面是如何在网格节点上进行复制和粘贴:

        string toPaste = "something";
        element.SendKeys(toPaste);
        element.SendKeys(OpenQA.Selenium.Keys.Control + "a"); //select all
        element.SendKeys(OpenQA.Selenium.Keys.Control + "c"); //copy 
        elementTwo.SendKeys(OpenQA.Selenium.Keys.Control + "v"); //paste
在选择文本并突出显示文本,然后进行复制和粘贴之前,您必须有输入文本的地方。这是它在节点上工作的方式。如果你不能在自己的应用程序中使用文本框,你可以随时访问google.com并在搜索栏中键入。然后复制该文本作为测试的第一步,导航到应用程序并将其粘贴


但是,如果同时在同一machinegrid节点上运行两个测试,剪贴板资源将不会是线程安全的。您可能需要实现一些自定义锁定逻辑

请参见:SO的期望是,用户提出问题时不仅要进行研究以回答自己的问题,还要共享研究、代码尝试和结果。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另请参见:我对你的评论感到非常惊讶,如果我能找到任何关于webdriver和剪贴板在线功能的信息,我就不会问这个问题了,Google上所有排名靠前的结果都是指在测试代码Clipboard.SetText传播到Selenium网格节点的同一台机器上运行webdriver?我在回答中添加了更多信息。我认为Clipboard.SetText无法按您所希望的方式工作。您必须在节点的某个位置键入文本,以便将其复制到剪贴板上。我们在网格节点上使用的第二个示例很有效