4

でウェブスクレイピングをしようとしていますselenium-webdriver。特定のページでは、構文の強調表示にaceエディターを使用しています。問題は、を使用してテキストを入力できることです

driver.get "http://codetable.org"
elem = driver.find_element(:css, "#editor textarea")
elem.send_keys "Hello"

しかし、一度入力したテキストをクリアすることはできません。elem.clearページに影響はありません。

画面に表示されているテキストをプログラムで削除する方法はありますか?これは、エースが追加する余分なcssが原因だと思います。私はを使用してruby 1.9.3います。

私もこれを試しました

irb(main):035:0> driver.find_element(:css, ".ace_content").clear
Selenium::WebDriver::Error::UnknownError: Element must be user-editable in order to clear it.
    from [remote server]
4

1 に答える 1

3

テキストエリアに値を入力すると、別のスパンに適用されているように見えます。textareaには常に空白の値があります。これは、clear機能しないことが何もしないように見える理由を説明しています。

テキストをクリアしたい場合は、キーボードショートカット(ctrl + a)を使用してから削除する必要があると思います。試す:

elem.send_keys [:control, 'a'], :delete
于 2012-12-27T21:53:16.963 に答える