2016-08-18 9 views
1

私は以下のように書いています。Selenium、Pythonに関する問題

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
bot = webdriver.Firefox() 
bot.find_element_by_name("username").send_keys(config['username']) 

私はsend_keysを使用して、同じ瞬間に入力することが起こるのですとき、私は何を入力したことも、ユーザ名に追加されます。
これを避ける方法は?

例:私は、同じ瞬間に、私は「A」を押すと、「サンディープ」 でユーザ名を記入したい

、その後、ユーザ名が「sandeepa」か何かの等価になります。

+3

私はそれには単純な解決策があるとは思っていません。このスクリプトの実行時に入力する必要がありますか? – DeepSpace

+0

これは実際の問題よりもOS /ブラウザとセレンの制限に似ています。 DeepSpaceが追加されたので、テストの実行と同時に入力する必要がありますか? – Dillanm

+0

私はこれを使っていくつかのファイルをダウンロードして同期させたので、バックで実行されていて、cronジョブを使って実行していますので、単純な解決方法は使用されません。 – Sandeep

答えて

1

あなたはexecuteScriptメソッドを使用することができます。

webdriver.execute_script("document.getElementById('username').setAttribute('value', 'Sandeep')") 

JavaScriptは、単一の操作としてテキストの挿入を行います。

0

私は2つのオプションを参照してください。後に隠された入力を削除し、目に見える入力に隠されてからのコピー/ペーストを行うよりも、それにキーを送る隠し入力を作成します

  1. を。

  2. send_keysよりも入力を非表示にしてから表示します。

お役立ちリンク:

Performing a copy and paste with Selenium 2

WebDriver: add new element

関連する問題