Selenium 如何为复选框选择定位器

Selenium 如何为复选框选择定位器,selenium,checkbox,path,testng,Selenium,Checkbox,Path,Testng,在这里,我必须使用selenium选择复选框,但我无法选择它。我使用的classname只有一个选项,但出现了错误: org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{“方法”:“类名”,“选择器”:“um图标android复选框大纲”} 代码 因此,我从您的代码中得到,似乎checkboxshowpassword和checkboxkeepsignin具有相同的类名。这意味着,至少有两个元素具有classnameum图标andr

在这里,我必须使用
selenium
选择复选框,但我无法选择它。我使用的classname只有一个选项,但出现了错误:

org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{“方法”:“类名”,“选择器”:“um图标android复选框大纲”}

代码


因此,我从您的代码中得到,似乎checkbox
showpassword
和checkbox
keepsignin
具有相同的类名。这意味着,至少有两个元素具有classname
um图标android复选框大纲
,这就是为什么当您使用
driver.findElement
时,驱动程序不知道是哪一个。在这种情况下,您必须使用
driver.findElements
。您可以尝试以下方法:

List<WebElement> checkboxes = driver.findElements(By.className("um-icon-android-checkbox-outline"));
// assuming there are only 2 elements have this classname, and in this order
checkboxes.get(0).click();  // click on showpassword
checkboxes.get(1).click();  // click on keepsignin
List checkbox=driver.findElements(By.className(“um icon android checkbox outline”);
//假设只有两个元素具有这个类名,并且按照这个顺序
复选框。获取(0)。单击();//单击showpassword
复选框。获取(1)。单击();//点击keepsignin

希望有帮助。

您能将HTML显示到您的复选框中吗?为了找到正确的xpath,应该有HTML块。请添加它。(By.xpath(//i[@um-icon-android-checkbox-outline-blank']);但仍然找不到其他人要求你分享HTML@shwetakaushik检查此讨论以解决我是否使用此代码的问题(它会引发此错误):java.lang.Error:未解决的编译问题:列表无法解析为类型get无法解析列表无法解析为类型get无法解析resolved@shwetakaushik:导入中是否存在
import java.util.List
?该错误表明您可能使用了错误的import.import java.util.List;导入org.openqa.selenium.By;导入org.openqa.selenium.WebDriver;导入org.openqa.selenium.WebElement;导入org.openqa.selenium.chrome.ChromeDriver;导入org.testng.annotations.Test;我使用这个导入代码Listshowpassword=get.driver.findElement(By.className(“um icon android checkbox outline”);showpassword.get.click();List keepsignin=get.driver.findElement(By.xpath(“um-icon-android-checkbox-outline”);keepsignin.get.click();然后给出错误java.lang.ERROR:get无法解析@Ragnarsson@shwetakaushik你的代码错了。1) 为什么
get.driver.findElement
?!。我不明白。这就是为什么您会遇到无法解决的错误
get
。2)
findElement
返回单个WebElement,而不是列表。请再次核对我的答案。
List<WebElement> checkboxes = driver.findElements(By.className("um-icon-android-checkbox-outline"));
// assuming there are only 2 elements have this classname, and in this order
checkboxes.get(0).click();  // click on showpassword
checkboxes.get(1).click();  // click on keepsignin