以编程方式使用selenium与ace编辑器交互

时间:2012-12-27 17:17:40

标签: ruby selenium-webdriver watir

我正在尝试使用selenium-webdriver进行网页抓取。 特定页面使用ace编辑器进行语法突出显示。问题是我可以使用

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

但我无法清除曾经输入过的文字。 elem.clear对页面没有影响。

有什么方法可以通过编程方式删除屏幕上的文字吗?我怀疑这是因为ace增加的额外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]

1 个答案:

答案 0 :(得分:3)

看起来当一个值输入到textarea时,它被应用到另一个跨度。 textarea总是有一个空白值,这解释了为什么clear无法正常工作。

如果你想清除文字,我想你可能不得不使用键盘快捷键--ctrl + a然后删除。尝试:

elem.send_keys [:control, 'a'], :delete