首页 > 解决方案 > Java- 从列表中读取第一个值并使用 Intellij 存储在变量中

问题描述

我在尝试从 Web 元素列表中检索和保存第一个值时遇到问题。我写了一个 XPATH 来检索,但它正在获取空值。令人惊讶的是,相同的 xpath 在 chrome 浏览器中可以正常工作。所以请指导我了解哪里出了问题。请找到下面的 HTML 代码和 XPath。

从下面的值列表中,我应该选择第一个值并存储在一个变量中。(即咖啡)

<ul id="ui-id-1" tabindex="0" class="ui-menu ui-widget ui-widget-content ui-autocomplete ui-front" style="width: 132.667px; top: 440.885px; left: 531px; display: none;">
   <li class="ui-menu-item"><a id="ui-id-6" tabindex="-1" class="ui-menu-item-wrapper"></a></li>
   <li class="ui-menu-item"><a id="ui-id-7" tabindex="-1" class="ui-menu-item-wrapper">Coffee</a></li>
   <li class="ui-menu-item"><a id="ui-id-8" tabindex="-1" class="ui-menu-item-wrapper">Tea</a></li>
   <li class="ui-menu-item"><a id="ui-id-9" tabindex="-1" class="ui-menu-item-wrapper">Milk</a></li>
</ul>

XPATH  (//ul[@id='ui-id-1']//li//a[@class='ui-menu-item-wrapper'])[2]

我很困惑,为什么这个 xpath 在 chrome 浏览器中正确突出显示,但同样是在从脚本运行时给出空值。请帮我解决问题。

注意:-在读取值之前,首先我单击选择下拉菜单,然后尝试读取值。

标签: javaseleniumintellij-ideaxpath

解决方案


您可以输入以下代码

            WebElement ul_element = driver.findElement(By.xpath("x_path_to_your_ul_tab"));
            List<WebElement> li_list = ul_element.findElements(By.tagName("li"));
            WebElement first_li_element = li_list.get(0);

您也可以迭代所有 li 元素,如下所示

            for (WebElement li : li_list ) {
                if (li.getText().equals(role)) {
                    li.click();
                }
            }

推荐阅读