gpt4 book ai didi

java - Selenium |元素不可交互错误: Explored all the options of stack overflow

转载 作者:行者123 更新时间:2023-12-01 17:36:06 35 4
gpt4 key购买 nike

我试图从网页中获取所有下拉列表,并一次性从中选择一个值。我附加了一个代码片段,它获取网页上标记下的所有引导下拉菜单。我想访问 li 标签下每个 ul 标签的子项,然后单击其中任何一个子项。
我附上从网站上截取的屏幕截图。它总是说元素不可交互,即使它是可点击的元素。请帮忙。

Application screenshot

代码:

List<WebElement> dropDowns = webDriver.findElements(By.xpath("//ul[contains(@class,'dropdown')]"));
try{Thread.sleep(5000);}catch (Exception e){};
for(WebElement webElement : dropDowns){
try{
List<WebElement> elementList = webElement.findElements(By.xpath("//ul[contains(@class,'dropdown')]//li"));
for (int i = 0 ; i < elementList.size();i++){
elementList.get(i).click();
Thread.sleep(3000);
}
}
catch (Exception e){
System.out.println("-----------Error----------");
continue ;
}
}
try{Thread.sleep(10000);}
catch (Exception e){}
webDriver.quit();
}

最佳答案

我在您的代码中看到以下问题。

  • 您正在尝试使用 webElement来自dropDowns如果您使用webElement,则列表将通过陈旧元素异常在 for 循环中。
  • 您的代码将始终对第一个 dropdwn 执行第一个操作,因为您没有根据索引获取 downdown。
  • 您提到您想要在列表中选择一个项目,但您正在点击下拉列表中的每个项目。

请尝试以下逻辑。

int dropDowns = webDriver.findElements(By.xpath("//ul[contains(@class,'dropdown')]")).size();
try{Thread.sleep(5000);}catch (Exception e){};
JavascriptExecutor js = (JavascriptExecutor) webDriver;
for(int dropdownIndex =0; dropdownIndex < dropDowns; dropdownIndex++){
WebElement dropdown = webDriver.findElements(By.xpath("//ul[contains(@class,'dropdown')]")).get(dropdownIndex);
try{
List<WebElement> elementList = dropdown.findElements(By.xpath(".//li"));
for (int i = 0 ; i < elementList.size();i++){ // not sure if you really want to click each item in the dropdown, hence not modified this part.
WebElement item = elementList.get(i);
js.executeScript("arugments[0].click()",item);
Thread.sleep(3000);
}
}
catch (Exception e){
System.out.println("-----------Error----------");
continue ;
}
}

关于java - Selenium |元素不可交互错误: Explored all the options of stack overflow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61037344/

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