4 回答
TA贡献1799条经验 获得超6个赞
要在与as Select all关联的复选框click()
上,因为所需的元素在Modal Dialog中,您必须为此引入WebDriverWait并且您可以使用以下Locator Strategy:<label>
elementToBeClickable()
xpath
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//li[text()='Select permissions']//following::li[1]//label"))).click();
TA贡献1898条经验 获得超8个赞
选择复选框类似于单击按钮。我看到有id所有复选框和value一些复选框的字段。所以你可以使用下面的方法来完成你所需要的。
id通过将复选框传递给 来选择复选框XPath,
driver.findElement(By.xpath(".//*[@id='permissions1565851434728']")).sendKeys(Keys.SPACE);
您可以单击复选框而不是像下面这样发送密钥,
WebElement checkBox = driver.findElement(By.id("permissions1565851434728"));
checkBox.click();
value通过将复选框传递给 来选择复选框CSSSelector,
WebElement checkBox = driver.findElement(By.cssSelector("input[value='Add/Update Network Security']"));
checkBox.click();
如果有 2 个复选框,您可以按如下方式使用,
driver.FindElements(By.xpath("(//input[@type='checkbox'])[1]"));
driver.FindElements(By.xpath("(//input[@type='checkbox'])[2]")); ...
Selenium WebDriver 使用浏览器的本地方法与 Web 组件进行交互。尽管如此,有时 Web 组件不会对这些本机方法做出反应。在这种情况下,最可靠的选择是 JavaScript。
因此,您可以尝试使用以下 JavaScript 与 Web 元素进行交互,
WebElement element = driver.findElement(By.cssSelector("input[value='Add/Update Network Security']"));
((JavascriptExecutor)driver).executeScript("arguments[0].click();", element);
你也可以试试DebanjanBWebDriverWait说的。
TA贡献1804条经验 获得超2个赞
您可以使用xpath,并用于WebDriverWait使元素存在然后使用Actions,试试这个:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@type='checkbox' and contains(@id,'permissions')]")));
WebElement elmnt = driver.findElement(By.xpath("//*[@type='checkbox' and contains(@id,'permissions')]"));
Actions act = new Actions(driver);
act.moveToElement(elmnt).click().build().perform();
或者
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("(//*[@type='checkbox'])[1]")));
WebElement elmnt = driver.findElement(By.xpath("(//*[@type='checkbox'])[1]"));
Actions act = new Actions(driver);
act.moveToElement(elmnt).click().build().perform();
如果您想要另一个复选框,请将其更改[1]为等。[2]
TA贡献1810条经验 获得超5个赞
您可以使用 uncle 元素的文本。要Select all
下,Select permissions
你可以使用
//li[contains(., 'Select permissions')]/following-sibling::li/label
添加回答
举报