有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

访问Selenium中Web元素的正确方法,这些Web元素在java中具有相同的名称或id

我对上述问题有疑问。。。但首先,如果我错过了这个网站中关于这个问题的答案,那么我为重复的问题道歉

我的问题是,当我在php中有一个循环,它创建了一个重复项,例如一个按钮,它也为我需要访问的这个元素创建了相同的名称和id,是的,我可以访问这个元素,尽管这只是selenium webdriver中findbyid方法给出的第一个实例

通过创建一个多命令来发送一个tab键,我有一个草率的解决方案,我必须首先指定在执行操作之前添加tab键所执行的迭代次数

是否有任何方法可以通过某个索引或特殊位置访问此元素。。 最后,很抱歉我的英语不好读,请耐心听我说。。先谢谢你


共 (2) 个答案

  1. # 1 楼答案

    @MarkRowlands说,你可以这样做,或者如果你知道索引,你可以:

    WebElement button = driver.findElement(By.xpath("(//*[@id='id'])[n]")) //n - your index
    

    但我不建议您使用索引。在我的实践中,总是有精确元素的定位器

  2. # 2 楼答案

    您可以形成webelement的列表,然后通过其索引访问该列表中的webelement

    List<WebElement> buttons = driver.findElements(By.id("id"));
    buttons[0].click();
    buttons[1].click();
    buttons[n].click();
    

    显然,您需要知道列表中要访问的位置,但从我所看到的情况来看,您已经知道这一点,这是由于您的选项卡尝试