我有一個複選框與input type="checkbox" value="1053" name="filelist"
硒動態的XPath處理
如果爲每個文件一個複選框用戶上傳多個文件將在網頁中添加。 但值更改爲 input type="checkbox" value="424" name="filelist"
請幫我如何檢查特定的複選框,當值正在改變每一個和其他人相同。
我有一個複選框與input type="checkbox" value="1053" name="filelist"
硒動態的XPath處理
如果爲每個文件一個複選框用戶上傳多個文件將在網頁中添加。 但值更改爲 input type="checkbox" value="424" name="filelist"
請幫我如何檢查特定的複選框,當值正在改變每一個和其他人相同。
使用findelements方法讀取所有使用名稱或相對xpath的複選框。
findelements return list.you可以使用任何複選框。
理想情況下,如果您沒有獲得任何唯一屬性來定位元素,那麼在這種情況下,您可以始終使用xpath。但是,正如你的問題所解釋的那樣,你可以通過它創建一個相對xpath來記錄獨特的常量屬性值。所以我的建議是:要麼使用相對的XPath將從上傳的文件細節做起這樣的:
//file[@id='foo']/input[@type='checkbox']
或使用findElements
找到所有的複選框元素,做任何你想做的事情通過反覆循環的列表網絡元素。它看起來像什麼:
Lis<WebElement> allChkBoxes = driver.findElements(By.name('filelist'));
// to click on first one
allChkBoxes.get(1).click();
你可以找到像By.cssSelector()或By.name(任何方法的所有元素),並點擊它們與循環的幫助:
List<WebElement> allCheckBoxes=driver.findElements(By.cssSelector("input[type='checkbox']"));
for(WebElement checkBox:allCheckBoxes){
checkBox.click();
}
由於沒有可用的獨特的屬性,你的情況,你可以使用索引:
String xPath = //input[@type='checkbox'][name='filelist'][i]
其中i =指數即1,2,3等。然後,
WebElement chkBox = driver.findElement(By.xpath(xPath));
chkBox.click();