通过
传递文字sendKeys("dublin,south Africa");
无法选择自动完成中的第一个元素。
答案 0 :(得分:1)
问题解决了。
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);
};
spec_test代码:
post_text.checkin("new Delhi, India",1);
答案 1 :(得分:0)
手动输入您希望测试执行的内容并检查自动完成的元素。您将使用protractor.ExpectedConditions等待该元素,然后在发送密钥后单击它。
答案 2 :(得分:0)
你需要做两件事:
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}')]"));
}
请注意,如果在上面显示的自动完成时间有延迟,则代码将无法正常工作(FindElement不会返回元素)。在点击之前,您需要等待显示下拉选项。
PS - partialValue和completeValue可以是相同的