我的下面的代码不起作用。当我运行下面的代码时,已经选中的复选框将被取消选中。
需要您的建议。
''' 导入java.util.List; 导入 java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import io.github.bonigarcia.wdm.WebDriverManager;
public class DropboxSelect {
public static void main(String[] args) {
WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver(); // launch chrome
driver.manage().window().maximize(); // maximize window
driver.manage().deleteAllCookies(); // delete all the
cookies
// dynamic wait
driver.manage().timeouts().pageLoadTimeout(40,
TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(10,
TimeUnit.SECONDS);
driver.get("https://www.jquery-az.com/boots/demo.php?
ex=63.0_2");//输入网址
driver.findElement(By.xpath("//button[contains(@class,'multiselect')]")).click();
List<WebElement> list =
driver.findElements(By.xpath("//ul[contains(@class,'multiselect-
容器')]//li//a//标签"));
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getText());
if (!list.get(i).isSelected()) {
list.get(i).click();
}
}
'''
最佳答案
如果选择了一个项目,您可以调整您的列表的 xpath 和条件,如下所示:
List<WebElement> list = driver
.findElements(By.xpath("//ul[contains(@class,'multiselect-container')]//li"));
for (WebElement webElement : list) {
System.out.println(webElement.getText());
if (!"active".equals(webElement.getAttribute("class"))) {
webElement.click();
}
}
它可以工作,但有点脆弱。
关于java - 如何确保我正在检查未选中的复选框 selenium java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61563974/