2

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

4

2 回答 2

4

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

各种 Selenium 接口(Java、Python 等)有多种方法可以访问剪贴板功能,但这些方法仅在相关浏览器在包含它们的上下文中运行时才有效。如果 Selenium 无头运行(意味着没有 GUI,例如使用虚拟显示器,例如Xvfb,可能作为虚拟机的一部分),则可能没有任何可访问的剪贴板功能上下文,并且 Selenium 本身不提供任何上下文。

于 2013-04-23T17:03:41.820 回答
2

您可以“预先填充”剪贴板的一种技巧是执行用户将其复制到剪贴板中所采取的步骤。

一种方法(假设您有一些要复制的文本)是打开一个包含文本的 url,在正文具有焦点时按“ctrl-a”键,然后按“ctrl-c”键

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

您可能必须在每个步骤之间休眠,以便操作系统有时间实际执行复制操作 - 我发现有时硒运行得太快。

于 2014-11-12T05:31:47.770 回答