如何 select 量角器中 ng-autocomplete 中的一个元素?
How to select an element in ng-autocomplete in protractor?
通过
传递文本
sendKeys("dublin,south Africa");
无法select自动完成第一个元素。
手动键入您希望测试执行的内容并检查自动完成的元素。您将使用 protractor.ExpectedConditions 等待该元素,然后在发送密钥后单击它。
你需要做两件事:
- 输入文字。有时需要按Tab键强制自动完成显示选项
- Select适当的下拉选项
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 不会 return 一个元素)。您需要等待显示下拉选项,然后才能单击它。
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);
};
spec_test代码:
post_text.checkin("new Delhi, India",1);
通过
传递文本sendKeys("dublin,south Africa");
无法select自动完成第一个元素。
手动键入您希望测试执行的内容并检查自动完成的元素。您将使用 protractor.ExpectedConditions 等待该元素,然后在发送密钥后单击它。
你需要做两件事:
- 输入文字。有时需要按Tab键强制自动完成显示选项
- Select适当的下拉选项
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 不会 return 一个元素)。您需要等待显示下拉选项,然后才能单击它。
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);
};
spec_test代码:
post_text.checkin("new Delhi, India",1);