gpt4 book ai didi

java - 查找 'li'元素

转载 作者:行者123 更新时间:2023-11-30 06:27:46 25 4
gpt4 key购买 nike

有人可以帮助我找到第五个“li”元素,因为在尝试查找它时收到错误。以下是页面的外观:

<ul class="navigation-primary navigation-primary--right js-navigation-primary">
<li><a data-modal="login-modal" href="javascript:void(0);" data-modal-content-switch="login-options" class="is-button-group-right js-prevent-trigger modal-content-button"><span>Logga in</span></a></li>
<li><a href="javascript:void(0)" class="icon icons8-Search has-no-border-bottom" data-menu="search"></a></li>
<li><a href="javascript:void(0)" class="has-no-border-bottom" data-menu="language">Svenska</a></li>

实际上,我需要最后一个具有以下属性的

data-menu="language"

由于有多种语言 - 我想它可以用 if 循环来解决:

if (driver.findElement(By.xpath("//*[@id="header"]/div[2]/div/ul[2]/li[5]/a") != null
driver.findElement(By.xpath("//*[@id="header"]/div[2]/div/ul[2]/li[5]/a").click();
else {
system.out.println("element not present");

}

由于有多种语言,每种语言都有最后一个 li[5] - 认为语言名称可以解决它,但没有找到解决方案。预先感谢您

最佳答案

我知道你接受了答案,但如果你使用像这样的简单 CSS 选择器,它会更干净、更清晰

driver.findElement(By.cssSelector("a[data-menu='language']")).click();

或者您可以更具体,并使用 XPath 按语言查找元素

driver.findElement(By.xpath("//a[@data-menu='language'][.='Svenska']")).click();

此外,您无法检查元素是否为 null。如果不存在,.findElement() 将抛出异常。如果要检查元素是否存在,请使用 .findElements() 并检查集合是否为空

List<WebElement> links = driver.findElements(...);
if (links.isEmpty())
{
// element doesn't exist
}
else
{
// element exists
links[0].click(); // or whatever
}

关于java - 查找 'li'元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46771130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com