2017-07-21 6 views
1

pythonでスクリプトを書いて、400-500行のテキストをあるブラウザから別のブラウザに抽出して貼り付けました。私はsend_keys()を使ってテキストコンテンツをテキストエリアに入れています。これは、行ごとに書かれています(2行/秒)。その結果、操作が完了するまでに数分かかります。 Seleniumには、(1秒で手作業で貼り付ける方法のように)速く書く方法がありますか?Python/Selenium:ブラウザで高速にペーストしてください

私のコード

<code> 

import time 
import re 
import csv 
from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.common.exceptions import TimeoutException 
from selenium.common.exceptions import ElementNotVisibleException 
from selenium.webdriver.common.keys import Keys 

def init_driver(uname,pwd): 
    driver = webdriver.Chrome() 
    driver.wait = WebDriverWait(driver, 5) 
    driver.get("https://ops.stg1.xxxxxyyyxxxx.com/login.jsp") 
    box = driver.wait.until(EC.presence_of_element_located((By.NAME, "j_username"))) 
    box.send_keys(uname) 
    box = driver.wait.until(EC.presence_of_element_located((By.NAME, "j_password"))) 
    box.send_keys(pwd) 
    button = driver.wait.until(EC.element_to_be_clickable((By.NAME, "login"))) 
    button.click() 
    return driver 

def copy(): 
    with open("Tag_input.txt") as f: 
     for line in f: 
      url = line.strip() 
      driver.get(url) 
    k=re.findall('\=(\d+)',url) 
    print(k[0]) 
    a=k[0] 
    driver.wait = WebDriverWait(driver, 10) 
    time.sleep(10) 
    PC = driver.find_elements_by_xpath("//textarea[@name='messagingMap.PRIMARY_CONTENT.message']") 
    PC.send_keys(Keys.CONTROL, "a") 
    PC.send_keys(Keys.CONTROL, "c") 
    print("Copied Primary content !!") 
    for tag in PC: 
     varPC = tag.text 
     url1 = "http://jona.ca/blog/unclosed-tag-finder" 
     driver.get(url1) 
     driver.wait = WebDriverWait(driver, 10) 
     time.sleep(10) 

     text_area = driver.find_element_by_id("unclosed-tag-finder-input") 
     text_area.send_keys(Keys.CONTROL, "v") 
     button = driver.find_element_by_xpath("//input[@value='Submit']") 
     button.click() 

     result = driver.find_element_by_xpath("//pre[@id='unclosed-tag-finder-results']") 
     res_list = list(result) 
     print(res_list) 
     op = result.text 
     print(op) 

     writer = csv.writer(open('Tag_OP.csv','a+')) 
     z = zip(k,result) 
     print(z) 
     writer.writerows(k) 
     writer.writerows(result) 
     k = k.pop() 
     print("List cleared",k[0])   
    driver.wait = WebDriverWait(driver, 10) 
    time.sleep(10) 
    return driver 

if __name__ == "__main__": 
    driver = init_driver("[email protected]","xxyyxx") 
    copy() 
    time.sleep(25) 
    driver.quit() 

</code> 

答えて

0

あなたは(なるように、それをコピーしたテキストは、Ctrl + Cを選択するには、Ctrl + Aを使用してみてください、あなたのターゲットフィールド内のすべてのテキストを選択するには、新しいブラウザはCtrl + Aに移動するかもしれません置き換えます)、Ctrl + Vを押して貼り付けます。私はそれがより速いかもしれないと想像することができますが、私はベンチマーキングを自分でやっていません。

This question私が検索したときにポップアップされました。これは、より多くの詳細を持っていますが、例えば、あなたのペーストは次のようになります。

driver.find_element_by_id("unclosed-tag-finder-input").sendKeys(Keys.chord(Keys.CONTROL,"v")); 
+0

uが呼ばれ、いくつかの研究を行なったし、この(Keys.CONTROL、「C」)を見つけ、質問を調査したが、それは私のために仕事をdidntの.. – Abdul

+0

ok ...どうしたのですか?あなたが私たちにもっと情報を与えない限り、私たちはあなたを助けることはできません。 –

+0

私は(Keys.CONTROL、 "c")を使用するとインデントエラーが表示されています。Windows 7 ProfessionalでPython 3.5バージョンを使用しています。 – Abdul

関連する問題