使用Selenium WebDriver直接进行剪贴板操作

时间:2013-04-04 15:28:55

标签: python selenium selenium-webdriver

是否可以使用Selenium WebDriver预先填充一些要粘贴的文本的剪贴板,就像文本已在另一个应用程序中复制一样? (理想情况下使用Python绑定?)

2 个答案:

答案 0 :(得分:3)

不,似乎没有 - 作为浏览器操作工具,Selenium旨在执行浏览器独有的功能。通常,剪贴板操作是由文件管理器处理的功能,通常包括GUI,例如Windows资源管理器或Mac OS Finder。

各种Selenium接口(Java,Python等)的 方式可以访问剪贴板函数,但这些只有在有问题的浏览器在包含它们的上下文中运行时才有效。如果Selenium运行无头(意味着没有GUI,例如使用虚拟显示,例如Xvfb,可能作为虚拟机的一部分),可能没有任何可访问的具有剪贴板功能的上下文,而Selenium本身不提供任何独自一人。

答案 1 :(得分:2)

你可以做的hack" pre-populate"剪贴板用于执行用户将其复制到剪贴板所需的步骤。

这样做的一种方法(假设你有一些你要复制的文字),就是打开一个包含文字的网址,按下按键&c; ctrl-a'当身体有焦点时,按下按键&c; ctrl-c'

driver.findElements(By.tagname("body")).type(Keys.chord(keys.control, 'a'));
driver.findElements(By.tagname("body")).type(Keys.chord(keys.control, 'c'));

你可能不得不在每一步之间放一个睡眠,以便操作系统有时间实际执行复制操作 - 我发现有时,硒运行得太快。