2013-11-28 3 views
0

Сценарий тестирования выглядит следующим образом:check Флажок в Selenium

Я создаю некоторых пользователей, например. Пользователь EF, Пользователь GH и т. Д.

Теперь мне нужно выбрать этих пользователей из списка пользователей (пользователи отсортированы в алфавитном порядке, так что только что созданные пользователи не всегда находятся сверху или снизу, в зависимости от имени пользователя, они могут находиться между ними)

Теперь мой разработчик использует список unOrder для отображения списка пользователей.

HTML код, как в:

<DIV class="reflex-ssl-result-list "> 
<UL> 
<LI><INPUT value="" type=checkbox><LABEL class=reflex-search-result-title></LABEL> 
<LI><INPUT value="" type=checkbox><LABEL class=reflex-search-result-title>A</LABEL> 
<LI><INPUT value="" type=checkbox><LABEL class=reflex-search-result-title>B</LABEL> 
<LI><INPUT value="" type=checkbox><LABEL class=reflex-search-result-title>C</LABEL> 
<LI><INPUT value="" type=checkbox><LABEL class=reflex-search-result-title>D</LABEL> 
<LI><INPUT value="" type=checkbox><LABEL class=reflex-search-result-title>E</LABEL> 
<LI><INPUT value="" type=checkbox><LABEL class=reflex-search-result-title>F</LABEL> 
<LI><INPUT value="" type=checkbox><LABEL class=reflex-search-result-title>G</LABEL> 
</UL> 
</DIV> 

C и D является вновь созданным пользователем, и что это один нужно выбрать. Как я могу это сделать? Я пробовал xpath, но проблема в позиции вновь созданного пользователя может быть где угодно. Если я все время выбирал пользователя в одном и том же месте, xpath подходит для меня, но в моем сценарии мне нужно что-то большее, чем xpath.

Любые предложения?

+0

Ни один из флажков не имеет значений или идентификаторов. Как разработчик узнает, какой пользователь выбран, поскольку ни один из этих флажков не имеет каких-либо уникальных характеристик! – Faiz

+0

В этом весь вопрос.Невозможно дать id. потому что список заполняется динамически. Если я создаю пользователя с именем say CA, позиция пользователя D будет перемещаться на одну позицию, а позиция пользователя D будет взята с помощью CA пользователя. –

+0

Добавлен ответ. позиция не имеет значения, так как мы можем идентифицировать текст меток. – Faiz

ответ

2

Используйте XPath для идентификации ярлыка, содержащего текст (например, «D»), поднимитесь на один уровень до его родителя (LI), а затем выберите input.

//LABEL[.='D' and @class='reflex-search-result-title']/../INPUT 

Поскольку элемент тегов в вашем примере в верхнем регистре, и чувствительность к регистру Xpath может быть проблемой, иногда, проверьте How XPath Works in WebDriver, чтобы увидеть то, что относится к вам.

+0

+1 для предложения чувствительности к регистру ... – Akbar

0

попробовать этот XPath

//label[contains(text(),'newly created user name')] 

пример: если вы создаете пользователь A

driver.findElement(By.xpath("//label[contains(text(),'A')]")).click(); 

так, где когда-либо может быть ваш пользователь будет создан, вы можете щелкнуть по тексту, и на основе HTML-тега.

Надеется, что это поможет вам

-Aj

0

попробовать это

<tr> 
    <td>storeXpathCount</td> 
    <td>//input[@name='NAME']</td> 
    <td>total</td> 
</tr> 
<tr> 
    <td>storeEval</td> 
    <td>Math.floor(Math.random() * ${total})+1</td> 
    <td>index</td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>xpath=(//input[@id='NAME'])[${index}]</td> 
    <td></td> 
</tr> 
0

XPaths:

E - // метку [текст() = 'E']/предшествующее -sibling :: input

F - // label [текст() = 'F']/previous-sibling :: вход

G - // метка [текст() = 'G']/предшествующих-Sibling :: вход

Н - // метка [текст() = 'Н']/предшествующее-родственный :: вход

как Выше XPaths Вы можете нажать на любой флажки создать комбинацию пользователей

Пожалуйста, дайте мне знать, работал мой Funda или нет?

Смежные вопросы