0

ユーザーがEnterキーを押すと、DOMに値を追加するテキストフィールドがあります。driver.send_keys(:return) は代わりにフォームを送信するだけなので、WebDriver でこれをシミュレートするのに問題があります。

テキスト フィールドの実装方法を調べたところ、「keyup」イベントを探していて、それを使用して Enter キーを押していることがわかりました。

ブラウザ コンソールを使用して、次の方法で jQuery を使用して keyup イベントで送信をトリガーすることにより、これを正常にシミュレートできます。

var e = jQuery.Event('keyup') 
e.which = 13;
$('input').trigger(e)

残念ながら、これと同じことを driver.execute_script で行うことはできません。これがうまくいかない理由はありますか?

driver.find_element(:id => 'input').send_keys('foo')
driver.execute_script("var e = jQuery.Event('keyup')")
driver.execute_script("e.which = 13;")
driver.execute_script("$('input').trigger(e)")

Selenium WebDriverでこれを達成する方法はありますか?

4

1 に答える 1