テキストエディタを変更しています。JavaScriptで操作するためにテキストを選択する必要があります。 Cucumber、Capybara、Seleniumでテキストを選択するにはどうすればよいですか?Cucumber + Capybara + Selenium:テキストの選択
4
A
答えて
3
JavaScriptを使用してテキストを選択する方法について説明した別のstackoverflow質問が見つかりました。
Can you set and/or change the user’s text selection in JavaScript?
私は(あなたが別の方法でセレンを使用している場合、あなたはそれを変更する必要があるかもしれません)セレンIDEからgetEvalコール内で動作できるようにするには、そのスクリプトを変更することができました。私はまた、Firefoxに関係のないコードを取り除いた:
function selectElementContents(el,start,end) {
var sel = window.getSelection();
var range = window.document.createRange();
range.setStart(el,start);
range.setEnd(el,end);
sel.removeAllRanges();
sel.addRange(range);
}
selectElementContents(window.document.getElementById("container").firstChild,10,20)
これは、単一の要素内のテキストの範囲を選択することができます。 "Container"はテキストを含む要素のIDで、10と20は開始および停止する文字のインデックスです。
これを1行に縮めて、それをSelenium getEvalステートメントに追加して、それを選択する必要があります。
1つの要素内のテキストに十分な柔軟性がない場合は、JavaScript範囲のドキュメントで必要な詳細を提供する必要があります。
+0
ありがとうございます。私はどのように私のセットアップにこれを適用するかを考え出している。 –
0
カピバラヘルパー関数にジョシュによって提案手法を結びつける(及び開始/終了要素内の部分の選択のための任意の位置引数を追加):
module TextSelection
def select_text(startEl, endEl, startPos = 0, endPos = 0)
js = <<-JS
var sel = window.getSelection();
var range = window.document.createRange();
range.setStart(arguments[0],#{startPos});
range.setEnd(arguments[1],#{endPos});
sel.removeAllRanges();
sel.addRange(range);
JS
page.execute_script(js, startEl.native, endEl.native)
end
end
World(TextSelection)
そして、テスト中:
start_el = first('#first')
end_el = first('#last')
select_text(start_el, end_el)
関連する問題
- 1. Cucumber/Capybara/Selenium-Webdriverエラー?
- 2. Test Control + Click with Capybara、Selenium、JS
- 3. Cucumber + Capybara + PhantomJS in RailsのjQuery Ajaxのデバッグ
- 4. Selenium - ドロップダウンオプションの選択
- 5. Selenium - Webelementの選択
- 6. cucumber&capybaraによるアクセスコントロールのテスト
- 7. Seleniumを使用した親要素テキストの選択
- 8. rails cucumber、rspec、capybaraのビュー(dhtml)でダイナミックパーツをテストする方法は?
- 9. Capybara/SeleniumテストでhoverIntentをトリガーする
- 10. 失敗した場合の画面キャプチャ(Mac OSの場合、Cucumber/Capybara/Selenium-webdriverをAndroid&iOS用に使用)
- 11. Jenkinsがヘッドレス状態のSelenium WebdriverでCapybara/Cucumberテストを実行すると断続的に失敗する
- 12. Rails 3の基本的なSelenium + Capybara + Cucumberを手に入れることができません
- 13. RubyでCapybara/Cucumber:要素がなくなると検索を停止します
- 14. Cucumber、Capybaraからjqueryアクションがトリガーされない
- 15. キャンバス・テキストの選択
- 16. Capybara/Cucumber:ネームスペース内のネストされたリソースのRoutingError
- 17. Capybara/Selenium Capybara :: ElementNotFound - @javascriptを実行するとき
- 18. Capybara/Cucumber/Rubyの問題:Control + C close Bowserセッション
- 19. Cucumber/Capybara/sinatraを使用して未定義のメソッド 'have_content'
- 20. cucumber/capybaraを使用してファイルのダウンロードダイアログボックスをテストする方法
- 21. Cucumber/Capybara - 現在の実行のホストとポートを取得する方法
- 22. Selenium PHP Webドライバでランダムラジオボタンを選択
- 23. Selenium WebdriverでPrimeFacesラジオボタンを選択
- 24. Selenium IDEで選択する値
- 25. アンドロイドウェブビューの選択テキストのトラッキング
- 26. リストボックスの選択テキストの色
- 27. SlickGridとテキストの選択
- 28. テキストの選択/強調ios
- 29. GmailのJSテキスト選択
- 30. テキストの囲みと選択
そのタイトルは、致命的なオードブル*のレシピのように聞こえます。ただ言って。このコメントの金曜日を許してください。 – MPelletier