2015-06-16 21 views
6

Tôi nhận được lỗi mà phần tử tôi đang cố gắng nhấp vào không nhấp vào khả năng mà tôi cho là không đúng sự thật.Phần tử không thể nhấp vào điểm - Thước đo

lỗi của tôi trông:

1) Open VehiclePage and populate data Populate vehicle data 
    Message: 
    UnknownError: unknown error: Element is not clickable at point (1315, 371). Other element would receive the click: <div class="form-con 
rol combo-options ng-scope ng-animate ng-leave ng-leave-active" ng-if="comboBox.visible" on-click-outside="comboBox.hide">...</div> 
(Session info: chrome=39.0.2171.71) 
(Driver info: chromedriver=2.13.307647 (5a7d0541ebc58e69994a6fb2ed930f45261f3c29),platform=Windows NT 6.1 SP1 x86_64) (WARNING: The server 
did not provide any stacktrace information) 
ommand duration or timeout: 30 milliseconds 

Một phần của mã của tôi:

it('Populate vehicle data', function() { 
     browser.waitForAngular(); 
     element(by.css('div#datepicking i.glyphicon-calendar')).click(); 
     element(by.css('div#datepicking button[ng-click="select(\'today\')"]')).click(); 
     element(by.model('case.vehicle.adminData.paintColour')).sendKeys(browser.params.paintColour);  
     element(by.xpath('(//*[@id="form-mileage"])')).sendKeys(browser.params.mileage);       
     element(by.id('form-mileage-unit')).click().then(function() { 
      element(by.cssContainingText('option', browser.params.lengthUnit)).click();   
     });; 
     element(by.xpath('(//*[@id="form-residual"])')).sendKeys(browser.params.technicalValue);  
     element(by.id('form-vehicle-condition')).click().then(function() { 
      element(by.cssContainingText('option', browser.params.vehicleCondition)).click(); 
     });;  
     element(by.xpath('(//*[@id="form-engine-type"])')).click().then(function() { 
      element(by.cssContainingText('option', browser.params.motorType)).click(); 
     });; 

HTML của phần đó trông giống như:

<div class="col-md-6"> 
       <div> 
        <div class="form-group"> 
         <label for="form-residual" ng-class="{red: !form.residual.$valid}" translate="case.vehicle.adminData.residualValuePercentage" class="ng-scope">Technická hodnota</label> 
          <span popover="Technická hodnota musí být v rozsahu 0-100%" popover-trigger="mouseenter" class="glyphicon glyphicon-question-sign red ng-hide" ng-show="form.residual.$invalid"></span> 
         <div class="input-group"> 
          <input type="number" id="form-residual" ng-model="case.vehicle.adminData.residualValuePercentage" name="residual" class="form-control ng-pristine ng-untouched ng-valid ng-valid-min ng-valid-max" max="100" min="0"> 
          <span class="input-group-addon">%</span> 
         </div> 
        </div> 
       </div> 
       <div> 
        <div class="form-group"> 
         <label for="form-vehicle-condition" translate="case.vehicle.adminData.vehicleCondition" class="ng-scope">Stav vozu</label> 
         <select type="text" id="form-vehicle-condition" ng-model="case.vehicle.adminData.vehicleCondition" name="vehicleCondition" class="form-control ng-pristine ng-valid ng-touched" ng-options="opt.value as opt.label | translate for opt in options.vehicleCondition"><option value="" class=""></option><option value="0" label="Lepší">Lepší</option><option value="1" label="Odpovídající">Odpovídající</option><option value="2" label="Horší">Horší</option><option value="3" label="Není znám">Není znám</option></select> 
        </div> 
       </div> 
      </div> 

Lỗi đi ra luôn khi cố gắng kích tố (by.id ('form-vehicle-condition'). Có cơ hội ai đó có thể giúp tôi tìm cách thoát khỏi nó?

+0

Ngoài ra, hãy kiểm tra [câu trả lời này] (http://stackoverflow.com/a/37815727/771848) để biết những điều bạn có thể thử. – alecxe

Trả lời

10

Hộp kết hợp từ thông báo lỗi vẫn mở khi bạn đang cố gắng nhấp vào yếu tố vehicle-condition - nhiều khả năng là do hoạt ảnh đóng/mờ dần. Bạn có thể thử vô hiệu hóa hình ảnh động cho các bài kiểm tra của bạn globally, locally hoặc wait cho các phần tử bọc biến mất:

var EC = protractor.ExpectedConditions; 
var element = element(by.id('form-vehicle-condition')); 
var isClickable = EC.elementToBeClickable(element); 
browser.wait(isClickable, 5000); 
element.click(); 
+0

Xin chào @dmitankin, yea như 1 phút trước khi bạn viết điều này tôi phát hiện ra combox trên của tôi không đóng enugh nhanh :) Câu trả lời đúng và cảm ơn cho các giải pháp potencional – Andurit

6

Tôi đã thử nhiều cách khác nhau, Chỉ

browser.executeScript('arguments[0].click();', element.getWebElement()); 

công trình đối với tôi.

+0

đối số [0] ở đây là gì? – ankitd

+0

@ankitdadhich nó có nghĩa là tham số đầu tiên của hàm phương thức. hãy xem https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments –

+2

Bạn cũng có thể viết dưới dạng 'browser.executeScript (hàm (elem) {elem.click() ;}, element.getWebElement()); '. – hlovdal

Các vấn đề liên quan