2014-10-09 80 views
0

我有一個複選框與input type="checkbox" value="1053" name="filelist"硒動態的XPath處理

如果爲每個文件一個複選框用戶上傳多個文件將在網頁中添加。 但值更改爲 input type="checkbox" value="424" name="filelist"

請幫我如何檢查特定的複選框,當值正在改變每一個和其他人相同。

回答

0

使用findelements方法讀取所有使用名稱或相對xpath的複選框。

findelements return list.you可以使用任何複選框。

0

理想情況下,如果您沒有獲得任何唯一屬性來定位元素,那麼在這種情況下,您可以始終使用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(); 
0

你可以找到像By.cssSelector()或By.name(任何方法的所有元素),並點擊它們與循環的幫助:

List<WebElement> allCheckBoxes=driver.findElements(By.cssSelector("input[type='checkbox']")); 
for(WebElement checkBox:allCheckBoxes){ 
     checkBox.click(); 
} 
0

由於沒有可用的獨特的屬性,你的情況,你可以使用索引:

String xPath = //input[@type='checkbox'][name='filelist'][i] 

其中i =指數即1,2,3等。然後,

WebElement chkBox = driver.findElement(By.xpath(xPath)); 
chkBox.click();