2016-01-15 86 views
1

我很樂意做這樣的事情:使用水豚複製粘貼?

div = find '#some-div' 
copy_to_clipboard(div) 

input = find '#my-input' 
paste_from_clipboard(input) 

我不想send_keys和用Ctrl + C和Ctrl + V來模擬這一點;我希望這可以跨瀏覽器(特別是在移動設備上)工作。

此API是否存在?

回答

0

沒有水豚複製/粘貼API - 如果你想要做的就是複製可見文本輸入,那麼你可以做

div_text = find('#some-div').text() 
find('#my-input').set(div_text) 

如果這不是你想要的東西是正確的,那麼你可以使用#execute_script創建一個選擇範圍象

var range = document.createRange(); 
range.setStart(<start node>, <start node character offset>); 
range.setEnd(<end node>, <end node character offset>); 

window.getSelection().removeAllRanges(); 
window.getSelection().addRange(range); 

然後找到你的目標元素,並設置其值爲window.getSelection()。toString()方法。請注意,這並不是真正模擬用戶會做什麼,所以如果您真的使用它來測試應用程序,我仍然建議在爲支持它的瀏覽器設置選擇範圍後使用ctrl/cmd-c/v,因爲它會模擬用戶行爲更好。

+0

謝謝。這證實了我的懷疑 - 沒有Capybara複製/粘貼API。 –

-1

沒有API來做到這一點。

您可以從一個瀏覽器

div = page.find('#some-div') 

然後得到元素,您可以將它傳遞到另一個瀏覽器

fill_in '#some-other-div' with => div 

你可以閱讀更多關於水豚在這裏: