4 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊
要在與as?Select all關(guān)聯(lián)的復(fù)選框click()
上,因?yàn)樗璧脑卦?em>Modal Dialog中,您必須為此引入WebDriverWait并且您可以使用以下Locator Strategy:<label>
elementToBeClickable()
xpath
:new?WebDriverWait(driver,?20).until(ExpectedConditions.elementToBeClickable(By.xpath("http://li[text()='Select?permissions']//following::li[1]//label"))).click();

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊
選擇復(fù)選框類似于單擊按鈕。我看到有id所有復(fù)選框和value一些復(fù)選框的字段。所以你可以使用下面的方法來完成你所需要的。
id通過將復(fù)選框傳遞給 來選擇復(fù)選框XPath,
driver.findElement(By.xpath(".//*[@id='permissions1565851434728']")).sendKeys(Keys.SPACE);
您可以單擊復(fù)選框而不是像下面這樣發(fā)送密鑰,
WebElement checkBox = driver.findElement(By.id("permissions1565851434728"));
checkBox.click();
value通過將復(fù)選框傳遞給 來選擇復(fù)選框CSSSelector,
WebElement checkBox = driver.findElement(By.cssSelector("input[value='Add/Update Network Security']"));
checkBox.click();
如果有 2 個(gè)復(fù)選框,您可以按如下方式使用,
driver.FindElements(By.xpath("(//input[@type='checkbox'])[1]"));
driver.FindElements(By.xpath("(//input[@type='checkbox'])[2]")); ...
Selenium WebDriver 使用瀏覽器的本地方法與 Web 組件進(jìn)行交互。盡管如此,有時(shí) Web 組件不會(huì)對(duì)這些本機(jī)方法做出反應(yīng)。在這種情況下,最可靠的選擇是 JavaScript。
因此,您可以嘗試使用以下 JavaScript 與 Web 元素進(jìn)行交互,
WebElement element = driver.findElement(By.cssSelector("input[value='Add/Update Network Security']"));
((JavascriptExecutor)driver).executeScript("arguments[0].click();", element);
你也可以試試DebanjanBWebDriverWait說的。

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
您可以使用xpath,并用于WebDriverWait使元素存在然后使用Actions,試試這個(gè):
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();
如果您想要另一個(gè)復(fù)選框,請(qǐng)將其更改[1]為等。[2]

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以使用 uncle 元素的文本。要Select all
下,Select permissions
你可以使用
//li[contains(., 'Select permissions')]/following-sibling::li/label
添加回答
舉報(bào)