量角器 - 无法点击不可见的“ng-click”元素

时间:2015-12-20 07:11:06

标签: angularjs selenium-webdriver automation jasmine protractor

我有问题因素,我无法通过量角器点击他。

实际上几天前它还不错。

技术细节:

Chrome 47.0.2526.106 m

量角器2.0

Selenium 2.44

CSS

<button class="green-btn font-xs md-button ng-scope md-ink-ripple" type="button" ng-transclude="" ng-click="reply()" ng-disabled="inProgress" translate="conversation.page_action.send" aria-disabled="false">Send<div class="md-ripple-container"></div></button>

测试案例

it('vCita New App - Conversation - Reply to existing conversation - Message sent', function() {
     browser.wait(EC.visibilityOf(element(by.css('[ng-click="reply()"]'))), 30000);
     element(by.css('[ng-click="reply()"]')).click();
});

错误:

ElementNotVisibleError: element not visible (Session info: chrome=47.0.2526.106) (Driver info: chromedriver=2.14.313457 (3d645c400edf2e2c500566c9aa096063e707c9cf),platform=Windows NT 6.3 x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 24 milliseconds Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50' System info: host: 'vCitaQA', ip: '192.168.152.1', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_65' Driver info: org.openqa.selenium.chrome.ChromeDriver Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, chrome={userDataDir=C:\Users\idan\AppData\Local\Temp\scoped_dir10416_32044}, takesHeapSnapshot=true, databaseEnabled=false, handlesAlerts=true, version=47.0.2526.106, platform=WIN8_1, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}] Session ID: e0c5329c3e1f187094ca7d9f76374c7c at new bot.Error (c:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\atoms\error.js:113:18) at Object.bot.response.checkResponse (c:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\atoms\response.js:106:9) at c:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\webdriver.js:377:20 at [object Object].promise.ControlFlow.runInFrame_ (c:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:1877:20) at [object Object].promise.Callback_.goog.defineClass.notify (c:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:2464:25) at [object Object].promise.Promise.notify_ (c:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:563:12) at Array.forEach (native) at Object.goog.array.forEach (c:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\array\array.js:203:43) at [object Object].promise.Promise.notifyAll_ (c:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:552:16) at goog.async.run.processWorkQueue (c:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:125:21) Error at [object Object].ElementArrayFinder.applyAction_ (c:\automation\npm\node_modules\protractor\lib\element.js:403:21) at [object Object].self.(anonymous function) [as click] (c:\automation\npm\node_modules\protractor\lib\element.js:76:19) at [object Object].self.(anonymous function) [as click] (c:\automation\npm\node_modules\protractor\lib\element.js:733:11) at [object Object]. (C:\automation\tests\testCases\newApp\conversationTC.js:30:40) at c:\automation\npm\node_modules\protractor\node_modules\jasminewd\index.js:94:14 at [object Object].promise.ControlFlow.runInFrame_ (c:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:1877:20) at [object Object].promise.ControlFlow.runEventLoop_ (c:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:1755:8) at [object Object]. (c:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:2056:12) at goog.async.run.processWorkQueue (c:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:125:21) at runMicrotasksCallback (node.js:337:7) From: Task: Asynchronous test function: it() at [object Object]. (c:\automation\npm\node_modules\protractor\node_modules\jasminewd\index.js:93:33) at [object Object]. (c:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\async-callback.js:45:37) at [object Object].jasmine.Block.execute (c:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:1174:17) at [object Object].jasmine.Queue.next_ (c:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2209:31) at [object Object].jasmine.Queue.start (c:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2162:8) at [object Object].jasmine.Spec.execute (c:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2503:14) at [object Object].jasmine.Queue.next_ (c:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2209:31) at onComplete (c:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2205:18) at [object Object].jasmine.Spec.finish (c:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2477:5) at [object Object].onComplete (c:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2504:10)==== async task ==== Error at [object Object]. (C:\automation\tests\testCases\newApp\conversationTC.js:27:4) at [object Object].jasmine.Env.describe_ (c:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:913:21) at [object Object].jasmine.Env.describe (c:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:898:15) at describe (c:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:658:27) at Object. (C:\automation\tests\testCases\newApp\conversationTC.js:1:63) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12)

1 个答案:

答案 0 :(得分:0)

  

您确定没有其他元素$args = array( 'posts_per_page' => -1, 'meta_key' => 'listing_status_dropdown', 'meta_value' => 'Viewable' ); $viewable = new WP_Query( $args ); // Display the number of 'Viewable' entries echo $viewable->found_posts; 吗?

根据所提供页面的源代码判断,情况确实如此。 有两个元素ng-click="reply()" ,第一个元素被禁用,这意味着您无法与之交互。你需要第二个元素:

ng-click="reply()"

您还可以改进选择器以匹配按钮栏内的元素:

$$('[ng-click="reply()"]').last().click();
相关问题