Html 获取错误“;java.lang.IndexOutOfBoundsException:索引:1,大小:1“;尝试从下拉列表中选择第二个选项时
我想从下拉列表中选择第三个选项。下拉列表写在Html 获取错误“;java.lang.IndexOutOfBoundsException:索引:1,大小:1“;尝试从下拉列表中选择第二个选项时,html,selenium,selenium-webdriver,Html,Selenium,Selenium Webdriver,我想从下拉列表中选择第三个选项。下拉列表写在div标记中。我只得到下拉列表的大小为1,但下拉列表中总共有10项。以下是Selenium代码: driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS); driver.manage().timeout().pageLoadTimeout(10,TimeUnit.SECONDS); //单击下拉列表 element=driver.findElement(By.xpath(“//div
div
标记中。我只得到下拉列表的大小为1,但下拉列表中总共有10项。以下是Selenium代码:
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
driver.manage().timeout().pageLoadTimeout(10,TimeUnit.SECONDS);
//单击下拉列表
element=driver.findElement(By.xpath(“//div[@class='selectedItem']”);
元素。单击();
//在这里,我试图获取下拉列表中的所有选项。
列表选项=driver.findElements(By.xpath(“//div[@class='dropdownItems open']);
int size=options.size();
//下拉列表中有10项,但结果我只得到一项。
系统输出打印项次(尺寸);
//这里我得到了“越界”的错误
选项。获取(1)。单击();
睡眠(5000);
我想在这里
List options=driver.findElements(By.xpath(“//div[@class='dropdownItems open']);
你只需要得到和这里相同的元素
element=driver.findElement(By.xpath(“//div[@class='selectedItem']”);
但是在你点击它之后,它改变了它的类。所以你得到的是一个项目列表
问题是选项是列表中的元素。检查你的html。例如,如果有类似的情况:
选择1
选择1
选择1
然后需要使用以下代码:
List options=driver.findElements(By.xpath(“//div[@class='dropdownItems open']/div”);
i、 e.扩展xpath,在列表中查询哪些项目。由于缺少信息,很难说清楚-您忘记发布HTML。我猜:将
By.xpath(“//div[@class='dropdownItems open']”)更改为By.classname(“dropdownItems”)
。请记住,HTML中的class
属性是一个以空格分隔的类列表。