如何减少Python selenium Pyperclip.paste的执行时间

时间:2018-02-15 10:08:21

标签: python selenium selenium-chromedriver

我使用以下python脚本从本地文件复制内容并将其粘贴到文本区域,实际上工作正常。但是,完成此任务需要花费大量时间,因为我的脚本会逐个将文件内容类型化为文本区域。

所以我在寻找是否有办法修改以下脚本,以便它可以一次性粘贴完整的数据。

import selenium
import pyperclip
path = 'path\to-my-file\Customer - Copy.txt'
fo = open(path, 'r').read()

#fo = fo.replace("\r","")
#fo = fo.replace("\n","")

pyperclip.copy(fo)
from selenium import webdriver
from selenium.webdriver import ActionChains
#from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
chromedriver = 'path\to-my-file\chromedriver.exe'
browser = webdriver.Chrome(chromedriver)

import time 

time.sleep(10)

browser.get('http://example.com')

time.sleep(10)

username1 = browser.find_element_by_class_name("ace_text-input")

username1.send_keys(pyperclip.paste())

1 个答案:

答案 0 :(得分:1)

如果你的目标只是任务自动化,你可以通过编写一个函数来加速输入,并传递元素文本设置直接用脚本注入字段如下:

def set_text(element, text):
  element._parent.execute_script("""
    var elm = arguments[0], text = arguments[1];
    if (!('value' in elm))
      throw new Error('Expected an <input> or <textarea>');
    elm.focus();
    elm.value = text;
    elm.dispatchEvent(new Event('change'));
    """, element, text)