2014-09-02 87 views
4

我用量角器選擇一些文字時遇到了一些麻煩。量角器 - 選擇文字

一點內容;這是用於編寫新聞文章的AngularJS CMS系統。我想突出顯示的文本位於大部分頁面的文本區域內。類似的應用程序是Google Docs文檔。

有了webdriver的,我相信我可以簡單地使用的東西來這種效果:

browser.actions().keyDown(protractor.Key.CTRL).sendKeys('a').perform(); 

然而,我的代碼在MAC上,雖然目前我們的測試是在SauceLabs Windows中運行,最終目標是轉移到MAC來模擬我們的用戶。

我嘗試了類似的代碼行,但使用Command(或CMD),但它不起作用,根據this post,OSX不支持本機鍵盤事件。

其他方法我已經瞭解:

  1. 試圖在元素三重單擊以選中所有文字...但我不能得到這個工作(任何幫助嗎?)。這很複雜,因爲鼠標光標必須位於文本之上才能突出顯示所有文本。

  2. 在我的本地機器上雙擊字段來選擇文本區域中的最後一項工作,但在SauceLabs中,瀏覽器較小,因此設法選擇不同的單詞。這感覺太脆弱了,因爲它在大多數機器上會有所不同。

  3. 將文本光標移動到文本區域的開始或結束處,按住Shift鍵並根據文本區域中字符的數量按下左或右箭頭鍵。我無法將光標移動到此實現中文本字段的開始或結尾處。

感謝您的閱讀,我意識到這有點長!如果你能想到一種我還沒有想到的方法或者一種編碼三重點擊或方向鍵方法的方法,那將非常有幫助!

+0

'鼠標光標必須覆蓋文本'您嘗試mouseOver(element,offset),其中offset = {x:somePixel,y:somePixel}? – nilsK 2014-09-02 15:43:35

+0

嗨@nilsK,謝謝你的回覆。我認爲(糾正我,如果我錯了),偏移量是以像素爲單位進行衡量,因此也取決於窗口大小?如果是這樣,這將是一個相當脆弱的工作方式,因爲它在大多數計算機上會有所不同。此外,只是好奇,你怎麼能夠去除錯誤,知道什麼時候除了測試通過之外還有正確的偏移? – madz 2014-09-03 09:32:27

+0

是的,偏移量是以像素爲單位進行衡量的,我猜想它不好。我遇到了一個問題,圓角的元素,2-3像素的偏移幫助。可能沒有幫助你。無論如何,要獲得正確的抵消,以及我使用鉻和其開發人員工具包含一個標尺;)F12 - >點擊'設置輪' - >元素'顯示標尺' – nilsK 2014-09-03 19:10:02

回答

2

OK,我設法通過選擇文本編程使用.executeScript方法來解決這個問題。

這是一個騙子,因爲它不模仿用戶的交互,但我找不到替代品,它被認爲是可以接受的解決方法。

下面的代碼,如果你有興趣,這將選擇在文本區第一段:

Article.prototype.selectFirstParagraph = function(driver) { 
    driver.executeScript(function() { 
     var range = document.createRange(); 
     range.selectNode(document.body.querySelector('.ui-rich-text-editor__input').firstChild); 
     var sel = window.getSelection(); 
     sel.removeAllRanges(); 
     sel.addRange(range); 
     return sel; 
    }); 
} 
1

對於那些誰正在尋找窗口。

var Key = protractor.Key; 
var Key = protractor.Key; 
browser.actions().sendKeys(Key.chord(Key.CONTROL, 's')).perform(); 
browser.actions().sendKeys(Key.chord(Key.CONTROL, Key.SHIFT, 'm')).perform(); 
browser.actions().sendKeys(Key.chord(Key.CONTROL, 'o')).perform(); 

Source Link