selenium 如何在一个包含多个元素的类中只单击其中一个元素?

8ulbf1ek  于 2022-11-29  发布在  其他
关注(0)|答案(2)|浏览(172)

好吧,所以我不能分享网站我试图自动化,但我会分享一个屏幕截图的检查视图。

我将添加我使用的代码和我从它得到的日志


,如您所见的类别:data-command在数字中有三个元素是动态的,但我需要单击最后一个元素,我不想使用absolut xpath作为类:数据命令是动态的。我将添加我使用的代码和我从它得到的日志
如何单击最后一个元素

#@{element_value}=    Get WebElements    class:data-value
    @{elements_name}=    Get WebElements    class:data-label 
    @{element_commands}=    Get WebElements    class:data-command
    WHILE    ${i} < 5
        #Log To Console    ${element_commands[${i}]}
        Click Element    ${element_commands[${i}]}
        Sleep    5s
        #Capture Page Screenshot
        Run Keyword And Warn On Failure        Page Should Contain    ${graph}
        ${i}=    Evaluate    ${i} + ${one}
    END
ldioqlga

ldioqlga1#

我不熟悉robot框架,但如果data-command类是一个唯一的定位器,下面的XPath将为您提供该元素中的最后一个子元素:

"(//div[@class='data-command']//*)[last()]"
okxuctiv

okxuctiv2#

你可以获取元素并将其存储在集合/列表中,然后获取最后一个元素并单击它:

List<WebElement> elements= driver.findElements(By.css(".data-command"));

element = elements.get(list.size() - 1); //Click only the last in the list

相关问题