有没有人知道如何使用capybara设置一个跨越标签的值?
我尝试使用element.set
或element.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 。
答案 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>")");