我在尝试从 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 浏览器中正确突出显示,但在从脚本运行时同样给出了空值。请帮我解决这个问题。
注意:-在读取值之前,首先我单击选择下拉列表,然后尝试读取值。
您可以输入以下代码
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();
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句