2017-01-02 3 views
0

Я пытаюсь найти динамический элемент и установить флажок. Как только флажок установлен, автоматически список получает значение 1. Я пробовал xpath /css, но без каких-либо результатов.Невозможно найти динамические элементы через webdriver

DOM:

<table class="bulk_task_table"> 
<tbody> 
<tr class="table_row"> 
<td class="servicenamewrapper"> 
<td style="margin:0; padding:0; border:0; width:0;"></td> 
<td style="margin:0; padding:0; border:0; width:0;"></td> 
<td class="skill_name" width="160px"> 
<div id="c23743691548_ctl" style="display:inline;"> 
<div id="c23743691548" class="skillwrapper" style="background-color:#FFFFFF;"> 
<span id="c525_ctl"> 
<div class="renderWithName"> 
<div class="left"> 
<label for="c525">service</label> 
</div> 
<div class="right"> 
<input id="c525" class="skill48" name="c525" type="checkbox"> 
</div> 
</div> 
</span> 
<span id="c526_ctl"> 
<select id="c526" class="listbox skill48" name="c526" size="1"> 
<option value="0">0</option> 
<option value="1">1</option> 
</select> 
</span> 
</div> 
</div> 
</td> 
<tr class="table_row"> 
<td class="servicenamewrapper"> </td> 
<td class="skill_name"> 
<td class="skill_name"> 
<td class="skill_name"> 
<div id="c529_ctl" style="display:inline;"> 
<div id="c529" class="globalswitchwrapper"> 
<span id="c530_ctl"> 
<div class="renderWithName"> 
<div class="left"> 
<label for="c530">Service</label> 
</div> 
<div class="right"> 
<input id="c530" class="skill48" name="c530" type="checkbox"> 
</div> 
</div> 
</span> 
<span id="c531_ctl"> 
<select id="c531" class="listbox skill48" name="c531" size="1"> 
<option value="0">0</option> 
<option value="1">1</option> 
<option value="2">2</option> 

OBS: Как можно посмотреть в коде выше, есть два списка называемые «службы» с тем же именем класса.

ответ

0

Вы можете выбрать желаемые динамические элементы в зависимости от их порядка появления. Например, если вы хотите, чтобы выбрать первый встречающийся флажок, вы можете использовать следующие XPath:

//table[@class='bulk_task_table']/descendant::input[starts-with(@class, 'skill')][1] 

Аналогично, если вы хотите, чтобы выбрать второй встречающийся флажок, вы можете использовать следующие XPath:

//table[@class='bulk_task_table']/descendant::input[starts-with(@class, 'skill')][2] 

Кроме того, вы можете выбрать другие элементы управления, которые появляются в динамическом элементе. Например, если вы хотите, чтобы выбрать второе вхождение в выбрать управления, вы можете использовать следующие XPath:

//table[@class='bulk_task_table']/descendant::select[starts-with(@class, 'listbox skill')][2] 

При необходимости, вы можете параметризовать предикат ([]) значение, а также. Дайте мне знать, если у вас есть какие-либо дальнейшие вопросы.

+0

Спасибо @Mahipal за предоставленную помощь, данный xpath решил мою ошибку. – Mary

+0

Отлично! Не беспокойся. Добро пожаловать :-) – Mahipal

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