私は現在、ウェブアプリケーションの一部を自動化しようとしています。主に、Facebookと同様の@mentioningのフォームです。フロントエンドで、ユーザーが@をテキスト入力に入力すると、APIはユーザーのリストを呼び出し、表示されるボックスに表示します。この要素は現在DOMの終わりにあり、@が入力されたときにJavaScriptがトリガーするまで表示されません。Javascriptボックスがセレニウムで起動されていません
マイセレンコードが@namehereを移入するsend_keysを使用しますが、ユーザーのウィンドウ要素が表示されない、ブラウザがセレン
を経由して開いている間、私はそれを手動で行う場合でも、私はからupkeyイベントを使用して試してみましたアクションチェーン、JavaScriptを注入してイベントをトリガーし、テキスト入力をクリックしてフォーカスが合っていることを確認しますが、何も機能しません。これはchromeとfirefoxの両方で発生します
あらゆる場所で文字通り検索されていますか?
フィーチャーステップ:
And i create a post titled "@James"
実装:
@when('i create a post titled "([^"]*)"')
def step_impl(context, text):
page = ActivityStreamPage.NewPost(context)
page.post_input.click()
page.post_input.send_keys(text)
要素:
'post_input': (By.CLASS_NAME, "js-post-textarea")
ウェブ要素:
<div class="js-post-textarea js-edit-content editor__editable"
contenteditable="true" autocomplete="off" autocorrect="off"
autocapitalize="off" placeholder="Write a post or @mention to notify
someone"><span class="atwho-query">@</span><br></div>
ユーザーボックス:デバッグの多くの後
<div class="atwho-view" id="at-view-64" style="display: none; top:
135px; left: 440px;">
<ul class="atwho-view-ul">
<li class="mention__item cur">
<p class="mention__notice">
<span>@Group</span>
"Notify everyone in this Group."
</p>
</li>
</ul>
</div>
本当に関心のある部分は「セレンを介してブラウザを開いているときに手作業で行っても」です。これは、ブラウザを起動するためのオプションがデフォルト(Seleniumなしで起動したとき)と異なる可能性があることを意味しているようです。私はあなたが手動で作業するためにブラウザオプションを設定することに集中すべきだと考えています。次に、セレンのsend_keysが動作するはずです。私は構成の問題がどうなるか分かりません。 –