我有一个搜索框:例如:当你输入一个文本: BestBuy并点击搜索,几个链接就会显示为BestBuy链接。如何验证文本与第一个链接是否匹配。它类似于谷歌搜索引擎。
public boolean check(String enterNameOfLink, String matchText) {
return check.Matches(matchText, enterNameOfLink);
Matches(String textToCheck, MobileElment link) {
boolean check = false;
for(int i = 0; i < link.lenght; i++){
match = element[i].getText().trim().equalsIgnoreCase(textToCheck);
if(check){
return match;
}
}
}
return false;
}我得到一个错误,它不匹配。
发布于 2019-05-21 16:30:24
您的返回条件是check boolean,并且您已经将其初始化为false,因此您的if条件永远不会为真,并且您不需要在代码中添加多个返回语句,如果文本匹配,则可以更改boolean的值,否则它就已经是false了。
你的代码应该是这样的:
public boolean check(String enterNameOfLink, String matchText) {
boolean match = false;
for(int i = 0; i < link.lenght; i++){
if(element[i].getText().trim().equalsIgnoreCase(textToCheck)){
match = true;
}
}
return match;
}发布于 2019-05-21 17:19:53
当搜索BestBuy时,它会显示几个链接。应该添加一个等待时间。
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
var element = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//ul[@class = 'sbsb_b']")));通过TagName获取所有列表项
var listElement = element.FindElements(By.TagName("li"));用于将鼠标悬停在链接上的用户操作类
Actions action = new Actions(driver);获取列表中第一个元素的文本
var firstElement = listElement[linkNumber].Text;用户断言,查看预期结果是否与实际结果相同
Assert.AreEqual(matchText,firstElement);如果需要单击第一个链接
action.MoveToElement(firstElement ).Click().Perform();https://stackoverflow.com/questions/56233434
复制相似问题