通过文本传递
sendKeys("dublin,south Africa");
它无法选择自动完成中的第一个元素。
通过文本传递
sendKeys("dublin,south Africa");
它无法选择自动完成中的第一个元素。
问题解决了。
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);
};
规格测试代码:
post_text.checkin("new Delhi, India",1);
手动键入您希望测试执行的内容并检查自动完成的元素。您将使用 protractor.ExpectedConditions 等待该元素,然后在发送密钥后单击它。
你需要做两件事:
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 可以相同