我需要在下拉框中选择一个项目 . 此下拉框用作ul和li项目 .
下拉被识别为span元素以及单击下拉按钮被识别为ul和li项时显示的列表 .
当使用以下代码选择项目时,错误消息表明在点击时看不到该问题 .
li元素innerHTML属性正确返回状态文本,但 getText()
方法返回空 .
即使打开下拉列表框, oStatusLi.isDisplayed()
也始终返回false .
WebElement statusUl = driver.findElement(By.xpath("//*[@id='ddlCreateStatus-" + strProjId + "_listbox']"));
statusUl.click();
Thread.sleep(3000);
List<WebElement> oStatusLis = statusUl.findElements(By.tagName("li"));
for(WebElement oStatusLi: oStatusLis){
if(oStatusLi.getAttribute("innerHTML")=="Paused")
{
oStatusLi.click();
break;
}
}
感谢是否有任何团体可以帮助我在java代码上选择列表项 .
1 回答
首先:将WebElement存储在内存中是不好的做法,因为它可能导致StaleElementExceptions . 它可能现在可以正常工作,但在未来的道路上,你最终会因为此而发生奇怪的故障 .
其次,您可以使用单个选择器处理元素的选择,而不是将所有<li>元素加载到内存中并迭代它们 .
您可能最终还必须执行JavaScript函数,同时单击该元素,具体取决于scrollIntoView是否有效 .