1

ユーザーが XML スタイルのファイルをアップロードして、ブラウザーで変更できるようにする Web アプリケーションがあります。

私はスプリンターでシナリオをテストしようとしています。入力が正しい場合 ( id="form-widgets-body"):

ここに画像の説明を入力

...私はそれを問題なく見つけることができattach_file、その名前で使用することもできます:

(Pdb)     brwsr.find_by_id('form-widgets-body')
[<splinter.driver.webdriver.WebDriverElement object at 0x7f2be3a32dd0>]

brwsr.attach_file('form.widgets.body', PATH_TO_FILE)

しかし、問題attach_fileは、実際にはファイルにアクセスできないことです。たぶん、何かが入力されたことを入力に伝えるだけで、他の種類のテストには適していますか? (たとえば、ドキュメント X をアップロードするまで、金融アプリの次の画面に進むことはできません)

代わりに試しsend_keysましたが、期待どおりに機能しませんでした:

(Pdb)     brwsr.find_by_id('form-widgets-body').send_keys
*** AttributeError: 'ElementList' object has no attribute 'send_keys'
(Pdb)     brwsr.find_by_id('form-widgets-body')[0].send_keys
*** AttributeError: 'WebDriverElement' object has no attribute 'send_keys'

そうは言っても、いくつかの質問:

  1. send_keys実際に私がやりたいこと (つまり、本物そっくりのアクセス可能なファイルのアップロード) を行いますか? もしそうなら、それを呼び出す正しい方法は何ですか?

  2. そうでない場合、他に何ができますか?(おそらくjsが必要ですか?)

4

1 に答える 1

2

あはは!send_keys実際に機能します。破片だけではなく、基礎となるセレンドライバーにアクセスする必要があります。

    brwsr.driver.find_element_by_id('form-widgets-body').send_keys(          
        PATH_TO_FILE)  
于 2015-08-17T15:53:51.470 に答える