use*_*231 5 python clipboard selenium sikuli
我在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")
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法在Python中编写一个具有相同结果的方法.所以,而不是:
el.send_keys("this will do 1 letter at a time")
Run Code Online (Sandbox Code Playgroud)
有类似的东西
el.paste_keys("this will do the entire line at once")
Run Code Online (Sandbox Code Playgroud)
由于上面的命令需要向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')
Run Code Online (Sandbox Code Playgroud)
但是,使用该环境变量实际上并不是一个"副本",我不知道如何在不下载第三方软件的情况下从代码级别设置剪贴板.
这有效:
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')
Run Code Online (Sandbox Code Playgroud)
%s之后不能有空格,因为它会将其添加到复制的文本中.
| 归档时间: |
|
| 查看次数: |
6083 次 |
| 最近记录: |