java - 从 Selenium 中获取 UL 标签的所有值

标签 java selenium selenium-webdriver css-selectors

我有以下 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/

相关文章:

java - Spring Data - Service 类中的 @Transactional 注释引发 AopConfigException

java - 具有类型的可选空值

java - 从 RESTClient 获取的结果中解析具体数据

Java 使用 Selenium 等待页面加载

Ruby Watir Selenium WebDriver depricated 警告

java - 是否可以通过 Selenium 代码禁用 Firefox 插件

c# - 使用 Java 的 Selenium Webdriver 与 C# 的比较

java - 使用 Jersey 读取时区和 JSON

java - com.mongodb.DB.authenticate(String,String) 是在内存中进行身份验证还是调用 mongo db?

python - 使用 Firefox WebDriver 单击与同名标签耦合的单选按钮