2014-10-09 3 views
0

XPath У меня есть один Checkbox с input type="checkbox" value="1053" name="filelist"Селен обработка динамического

Если добавления пользователей больше файлов для каждого файла один Флажок будет добавить на веб-странице. Но значение меняется для этого input type="checkbox" value="424" name="filelist"

Пожалуйста, помогите мне, как проверить конкретный CheckBox, когда значение меняется для каждого из них и другие такие же.

ответ

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] 

где я = индекс т.е. 1, 2, 3 и т.д. А потом,

WebElement chkBox = driver.findElement(By.xpath(xPath)); 
chkBox.click(); 
Смежные вопросы