我有以下 HTML 代码。我想获取超链接标记内的所有文本。
<div ng-model='sCur'>
<ul sa-toggle-menu="" role="menu" class="sa-dropdown-menu">
<li><a ng-bind="item[lebel]" ng-click="itemSelect(item)" class="ng-binding">1</a>
<li><a ng-bind="item[lebel]" ng-click="itemSelect(item)" class="ng-binding">2</a>
<li><a ng-bind="item[lebel]" ng-click="itemSelect(item)" class="ng-binding">3</a>
</ul>
</div>
我正在尝试下面的java代码。但我得到空文本值。
List<WebElement> currencies = driver.findElements(By.cssSelector("div[ng-model='sCur'] ul li"));
for (WebElement option : currencies) {
System.out.println("Text :" + option.getText());
}
最佳答案
好的..这就是问题所在。
由于数据在运行时绑定(bind)到元素,因此 DOM 中不存在该列表。仅当单击下拉箭头时,元素才会添加到 DOM。
触发组合框点击后,所有元素都变得有效并且 getText() 起作用。
driver.findElements(By.cssSelector("div[ng-model='sCur'] ul")).click();
List<WebElement> currencies = driver.findElements(By.cssSelector("div[ng-model='sCur'] ul li a"));
for (WebElement option : currencies) {
System.out.println("Text :" + option.getText());
}
关于java - 从 Selenium 中获取 UL 标签的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22762401/