Angularjs 如何在量角器中选择ng自动完成中的元素?

Angularjs 如何在量角器中选择ng自动完成中的元素?,angularjs,autocomplete,protractor,gulp-protractor,protractor-net,Angularjs,Autocomplete,Protractor,Gulp Protractor,Protractor Net,传递文本 sendKeys("dublin,south Africa"); 无法选择自动完成中的第一个元素。手动键入您希望测试执行的内容,并检查自动完成中的元素。您将使用dragrator.ExpectedConditions等待该元素,然后在发送密钥后单击它 你需要做两件事: 输入文本。有时需要按Tab键以强制自动完成显示选项 选择适当的下拉选项 C语言中的示例代码: fieldElement.ClearAndSendKeys(partialValue); fieldElement.Send

传递文本

sendKeys("dublin,south Africa");

无法选择自动完成中的第一个元素。

手动键入您希望测试执行的内容,并检查自动完成中的元素。您将使用dragrator.ExpectedConditions等待该元素,然后在发送密钥后单击它

你需要做两件事:

输入文本。有时需要按Tab键以强制自动完成显示选项 选择适当的下拉选项 C语言中的示例代码:

fieldElement.ClearAndSendKeys(partialValue);
fieldElement.SendKeys(Keys.Tab);
GetFieldDropdown(completeValue).Click();
GetFielDropdown方法详细信息取决于您的DOM。以下是我正在从事的一个项目的简化示例:

private IWebElement GetFieldDropdown(string dropdownValue)
{
    return FindElement(By.XPath($"//span[contains(.,'{dropdownValue}')]"));
} 
请注意,如果上面显示的autocomplete有延迟,那么代码将无法正常工作,FindElement将不会返回元素。您需要等待下拉选项显示,然后再单击它

PS-partialValue和completeValue可以是相同的

问题已解决

this.checkin = function(text,index){
        element( by.css('[ng-click="showMapTextBox2()"]') ).click();
        // element(by.model("location")).sendKeys(text);
        browser.actions()
        .mouseMove(element(by.model("location"))
        .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();
      });
        browser.sleep(3000);
    };

sendKeys将只在文本字段中输入文本。您需要使脚本从“自动完成”下拉列表中单击所需的值。你能提供你目前面临的问题的更多信息吗?我有一个位置字段,当用户输入城市名称时,它将识别并给出建议的城市名称。@sudharsanselvaraja因此,您需要做的是在输入城市名称后等待下拉建议显示。然后从建议列表中单击所需的城市名称。是。它应该从列表@sudharsanselvaraja中选择第一个仍然面向用户的城市名称同样的问题@doct03Thank@Ory ZaidenForm。这样写的代码。this.checkin=functionvalue{var EC=dragrator.ExpectedConditions;element by.css'[ng click=showMapTextBox2]'.click;var enterLocation=elementby.modellocation;browser.waitEC.visibilityofterlocation,10000,'enterLocation未找到';browser.sleep5000;var ExpList=enterLocation.sendKeysvalue;expectExpList.isDisplayed.toBetrue;expectExpList.getText.toEqual'hydrabad,Telangana,India';browser.sleep4000;}@Shiva我认为您在var ExpList=enterLocation.sendKeysvalue行中有一个问题;您应该SendKeys,然后将find ExpList设置为与我提供的示例中的GetFileDropdown方法相同。
post_text.checkin("new Delhi, India",1);