如何用水豚设置跨度值?

时间:2016-02-16 07:56:04

标签: ruby capybara

有没有人知道如何使用capybara设置一个跨越标签的值?

我尝试使用element.setelement.send_keys,他们只选择了目标元素,而没有修改以前的值。

<div data-offset-key="bbpvo-0-0" class="_1mf _1mj"><span data-offset-key="bbpvo-0-0"><span data-text="true">aa</span></span></div>

HTML片段在上面,我想将 aa 设置为 bb

2 个答案:

答案 0 :(得分:0)

Capybara旨在模拟用户 - 用户无法编辑跨度,除非附加了某种javascript小部件。如果您有一个附加到跨度的JS小部件,则需要执行用户为编辑跨度而执行的任何操作。所以你说用户必须点击跨度然后输入跨度 - 如果是这样的话你可以试试像

span = find('span[data-text="true"]')
span.click
span.send_keys("new content", :enter)  # if enter is needed to end the editing

这可能有用 - 虽然我会猜测元素实际上被输入或其他东西替换后被点击,在这种情况下你需要弄清楚这些元素是什么(使用浏览器检查器)然后查找并使用send_keys或设置该元素

答案 1 :(得分:0)

要在span值中设置文本,jquery可以与capybara一起使用,如下所示:

page.execute_script("$("<span css selector>").text("testing")");

page.execute_script("$("<span css selector>").html("testing <b>1 2 3</b>")");