2015-04-28 47 views
1

我正在使用量角器來測試角度1.3.13和ui網格3.0。網格中的所有單元都是可編輯的。在我的測試中,我可以使用以下方法得到電池:使用量角器編輯ui網格單元格值

dataCell: function(gridId, fetchRow, fetchCol) { 
    var row = this.getGrid(gridId).element(by.css('.ui-grid-render-container-body')).element(by.repeater('(rowRenderIndex, row) in rowContainer.renderedRows track by $index').row(fetchRow) ); 
    return row.element(by.repeater('(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name').row(fetchCol)); 
} 

https://github.com/angular-ui/ng-grid/blob/master/test/e2e/gridTestUtils.spec.js

後,我從第一行第一個單元格,當我嘗試值發送到細胞

cell.click(); 
cell.sendKeys("newCellValue"); 

測試中斷。我收到以下錯誤消息:

- Failed: unknown error: cannot focus element 
    (Session info: chrome=40.0.2214.115) 
    (Driver info: chromedriver=2.14.313457 
    (3d645c400edf2e2c500566c9aa096063e707c9cf),platform=Linux 3.13.0-49-generic x86_64) (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 35 milliseconds 
Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50' 
System info: host: 'xxxxxxxxx', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-49-generic', java.version: '1.8.0_40' 
Driver info: org.openqa.selenium.chrome.ChromeDriver 
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, chrome={userDataDir=/tmp/.com.google.Chrome.LHfq2F}, takesHeapSnapshot=true, databaseEnabled=false, handlesAlerts=true, version=40.0.2214.115, platform=LINUX, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}] 
Session ID: 50857fdfa10a4bc75444d21f2d04359e 
(Session info: chrome=40.0.2214.115) 
(Driver info: chromedriver=2.14.313457 (3d645c400edf2e2c500566c9aa096063e707c9cf),platform=Linux 3.13.0-49-generic x86_64) (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 35 milliseconds 
Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50' 
System info: host: 'xxxxxxxxx', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-49-generic', java.version: '1.8.0_40' 
Driver info: org.openqa.selenium.chrome.ChromeDriver 
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, chrome={userDataDir=/tmp/.com.google.Chrome.LHfq2F}, takesHeapSnapshot=true, databaseEnabled=false, handlesAlerts=true, version=40.0.2214.115, platform=LINUX, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}] 
Session ID: 50857fdfa10a4bc75444d21f2d04359e 
    at /usr/lib/node_modules/protractor/node_modules/jasminewd2/index.js:102:16 
    at [object Object].promise.ControlFlow.runInFrame_ (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1877:20) 
    at [object Object].promise.Callback_.goog.defineClass.notify (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:2464:25) 
    at [object Object].promise.Promise.notify_ (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:563:12) 

調用sendKeys方法時會出現此問題。有誰知道使用量角器更改單元格值的正確方法嗎?

回答

1

解決了它。你需要把重點細胞和訪問輸入元素:

cell.click(); 
cell.element(by.css(".ui-grid-cell-focus input")).sendKeys("newCellValue"); 

編輯: 對舊版瀏覽器的一些問題,更好地使用:

cell.click(); 
cell.element(by.css("input")).sendKeys("newCellValue"); 

編輯:

另一個問題是與Firefox cell.click()無法正常工作。 解決方法/破解:https://stackoverflow.com/a/23370177

相關問題