我在webdriver中遇到了一个奇怪的行为。问题很简单。我只是想在下拉列表中打印文本的名称,但我无法做到这一点,我尝试了各种方法。
第1道:将getText
与我的代码段一起使用
List<WebElement> dupmap = driver.findElements(By.xpath("//*[@class='dropdown-menu']/li/a"));
System.out.println("Size of sub menu is : " + dupmap.size());
for(int j=0;j<dupmap.size();j++){
System.out.println("Sub menu options are : " + dupmap.get(i).getText());
}
获取null作为输出。
第2道:将.getAttribute("innerText")
输出用作Load saved data source
System.out.println("Sub menu options are : " + dupmap.get(i).getAttribute("innerText"));}
我不确定为什么我将此Load saved data source
作为输出。
第3道:将.getAttribute("innerHTML")
输出用作Load saved data source <span class="caret-right"></span>
;不知道这是什么?
第4道:将.getAttribute("textContent")
输出用作Load saved data source
;不知道这是什么?
但是当我将xpath从此//*[@class='dropdown-menu']/li/a
更改为//*[@class='dropdown-menu']
然后使用.getText()时;我正在输出
Size of sub menu is : 6
Sub menu options are : Add map...
Duplicate
Rename
Auto-align map objects...
Analyze territory alignment...
Optimize selected territories...
Remove...
Sub menu options are : Add map...
Duplicate
Rename
Auto-align map objects...
Analyze territory alignment...
Optimize selected territories...
Remove...
Sub menu options are : Add map...
Duplicate
Rename
Auto-align map objects...
Analyze territory alignment...
Optimize selected territories...
Remove...
Sub menu options are : Add map...
Duplicate
Rename
Auto-align map objects...
Analyze territory alignment...
Optimize selected territories...
Remove...
Sub menu options are : Add map...
Duplicate
Rename
Auto-align map objects...
Analyze territory alignment...
Optimize selected territories...
Remove...
Sub menu options are : Add map...
Duplicate
Rename
Auto-align map objects...
Analyze territory alignment...
Optimize selected territories...
Remove...
所需的文字,但正如您所看到的,所有菜单选项都在一起,并且迭代次数为6.我不确定发生了什么。我的菜单及其源代码是:
,菜单为:
此外,当我尝试单击其中一个选项时,我收到错误,因为元素不可见。
答案 0 :(得分:0)
for(int j=0;j<dupmap.size();j++){
System.out.println("Sub menu options are : " + dupmap.get(i).getText());
}
在您的代码中,您使用了dupmap.get(i).getText()
。但是在for循环中你使用j
作为索引变量。