当前位置: 首页 > 面试题库 >

使用Selenium粘贴命令

谷博艺
2023-03-14
问题内容

我在Windows 7上使用Python 2.7和Selenium
2-44-0。我正在寻找一种比send_keys更快的输入文本的方法。Send_keys一次打印1个字母(更好地模仿实际用户)。我想要一种将所有内容一次性打印出来的方法,就像粘贴内容一样。

例如,Sikuli具有以下功能:

paste("this will all populate the field at the same time")

我想知道是否有一种方法可以用Python编写具有相同结果的方法。因此,代替:

el.send_keys("this will do 1 letter at a time")

有类似的东西

el.paste_keys("this will do the entire line at once")

由于上述命令将需要向selenium功能中添加代码,因此使用python方法可能更有意义。也许是这样的:

def paste_keys(self, xpath, text):
    os.environ['CLIPBOARD'] = text
    el = self.driver.find_element_by_xpath(xpath)
    el.send_keys(Keys.CONTROL, 'v')

但是,使用该环境变量实际上并不能充当“副本”,而且我不知道如何在不下载第三方软件的情况下从代码级别设置剪贴板。


问题答案:

这有效:

def paste_keys(self, xpath, text):
    os.system("echo %s| clip" % text.strip())
    el = self.driver.find_element_by_xpath(xpath)
    el.send_keys(Keys.CONTROL, 'v')

%s后不能有空格,因为它将空格添加到复制的文本中。



 类似资料:
  • 问题内容: 我想从Java中的系统剪贴板中粘贴。我该怎么做? 问题答案: 尽管机器人类可以工作,但它不像直接使用系统剪贴板那样优雅,例如:

  • 问题内容: 当我尝试使用粘贴到单元格时,我要粘贴的单元格保持空白,但setValueAt()似乎可以正常工作。另外,当我尝试从一个单元格剪切或复制JPopupMenu时,如果要粘贴到另一个单元格,则我的“粘贴”选项将保持禁用状态。我不知道为什么。我的代码如下。 Here’s my code for 问题答案: 根据您的示例代码,并且必须填写空白,它对 我有用… Now, maybe you’d l

  • 需要使用剪贴板操作将字符串值粘贴到WebElement

  • 我有一个警告框,在文本输入区域显示一个URL,并将链接复制到剪贴板。我希望能够打开一个新的标签,并粘贴到地址栏的URL。 我试过:

  • 使用“复制链接”按钮复制链接 导航到其他输入/文本字段 用Ctrl+V粘贴到字段中,并读取该字段的内容以验证 我的测试: 但是,没有任何内容粘贴到该输入(和return)。 谢了!

  • 问题内容: 我的.emacs中有(cua-mode t),因此Cc是复制的,而Cv是粘贴的,就像桌面上的其他大多数程序(Ubuntu,Gnome,Linux)一样。但是,Emacs似乎并未与其他程序共享剪贴板/复制缓冲区。 例如,如果我在Firefox中使用Cc,则可以将SCv粘贴到终端中,或者将Cv粘贴到gedit中。但是,如果我在emacs中使用Cv(或Cy),则无法获得从Firefox复制的