Java—从列表中读取第一个值,并使用Intellij存储在变量中

Java—从列表中读取第一个值,并使用Intellij存储在变量中,java,selenium,intellij-idea,xpath,Java,Selenium,Intellij Idea,Xpath,在尝试从web元素列表中检索和保存第一个值时,我遇到了一个问题。我编写了一个XPATH来检索,但它正在获取空值。令人惊讶的是,同样的xpath在chrome浏览器中正常工作。所以请引导我了解哪里出了问题,哪里出了问题。 请查找下面的HTML代码和XPath 从下面的值列表中,我应该选择第一个值并存储在变量中。(即咖啡) 我很困惑,为什么这个xpath在chrome浏览器中正确高亮显示,但在从脚本运行时却给出空值。请帮我解决这个问题 注意:-在读取值之前,我先单击“选择”下拉列表,然后尝试读取值。

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

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

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

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

您可以在下面的代码中选择

            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);

为什么要坚持使用xpath?最好使用更直接的定位器
List items=driver.findElements(By.className(“ui菜单项包装”);字符串值1=items.get(0.getText();字符串值2=items.get(1.getText()最有可能的解释是元素在XHTML名称空间中,但我无法从给出的信息判断情况是否如此。
XPATH  (//ul[@id='ui-id-1']//li//a[@class='ui-menu-item-wrapper'])[2]
            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);
            for (WebElement li : li_list ) {
                if (li.getText().equals(role)) {
                    li.click();
                }
            }