2016-12-01 115 views
2

不选择的第一要素经过的部位来模拟自动完成应该选择的第一要素。这里是HTML代码谷歌自动完成在量角器

<input type="text" class="textareanoborder col-xs-12 col-md-12 m-t ng-pristine ng-valid ng-isolate-scope ng-touched" placeholder="Enter Location" ng-autocomplete="result1" details="details1" options="options1" rows="1" ng-model="location" autocomplete="off" aria-invalid="false"> 

这里之后是量角器代码:

browser.actions().mouseMove(element(by.model("location")).sendKeys("hyderabad,Telangana,India",protractor.Key.ARROW_DOWN)).click(); 

以下错误投掷:

Failed: unknown error: Element is not clickable at point (736, 231). Other element would receive the click: <div class="pac-item">...</div> 
     (Session info: chrome=54.0.2840.99) 
     (Driver info: chromedriver=2.25.426923 (0390b88869384d6eb0d5d09729679f934aab9eed),platform=Windows NT 10.0.14393 x86_64) 

回答

2

我猜这是一个嵌入式谷歌搜索?我不知道这是否有帮助,但我做了一个功能,搜索谷歌搜索的东西,弹出作为一个自动完成的选择。您可以选择要搜索的自动填充项目的编号。

function autoCompleteSearch(text, index) { 
     browser.actions() 
     .mouseMove(element(by.name('q')) 
     .sendKeys(text)) 
     .perform().then(function(){ 
     browser.sleep(500); 
     // press the down arrow for the autocomplete item we want to choose 
     for(i = 0; i < index ; i++){ 

      browser.actions().sendKeys(protractor.Key.ARROW_DOWN).perform(); 
     } 
     browser.sleep(500); 
     browser.actions().sendKeys(protractor.Key.ENTER).perform(); 
     }); 
} 

describe('google homepage', function() { 
browser.ignoreSynchronization = true; 
    beforeEach(function() { 
    browser.get('http://www.google.com'); 
    }); 

    it('should search google via autocomplete', function() { 

     autoCompleteSearch("awesome", 3); 

     // added this sleep so I can see the results afterwards 
     browser.sleep(2000); 

    }); 
}); 
+1

Thanks.it worked @BarretV – Shiva