Флажки с хромовым драйвером селена - PullRequest
1 голос
/ 10 марта 2019

Я работаю над выбором флажков на странице из списка строк Array.Например, мой массив содержит [wva-00: 04: F3: 12: A7: 2E, wva-00: 04: F3: 12: A6: F7, wva-00: 04: F3: 12: A6: 90]

Я протестировал программу, и она идет внутри цикла for и оператора if, поэтому я знаю, что он находит текст из getPageSource.Но использование xpath ниже выдает эту ошибку.нет такого элемента: невозможно найти элемент: {"method": "xpath", "selector": "// label [text () = 'wva-00: 04: F3: 12: A7: 2E']"}.Пожалуйста, дайте мне знать, что я делаю неправильно.Также обратите внимание, что я не могу использовать идентификаторы, такие как «отмеченный_439», они генерируются по-разному для каждой страницы и не будут одинаковыми.

Таблица веб-страниц

    for(int i = 0; i < edcNumbers.size(); i++)

        if(driver.getPageSource().contains(edcNumbers.get(i)))
            driver.findElement(By.xpath("//label[text()='"+edcNumbers.get(i)+"']/preceding-sibling::input[@type='checkbox']")).click();

JavaScript

				
			</tr>
		</thead>
		<tbody class="yui-dt-body">
			
				<tr class="yui-dt-odd">
					<td id="yui-0-0" headers="yui-header-0" class="yui-dt-col-"><input type="checkbox" id="marked_439" name="439"></td>
					<td id="yui-0-1" headers="yui-header-1" class="yui-dt-col-ALPHA">wva-00:04:F3:12:A7:2E</td>
					<td id="yui-0-2" headers="yui-header-2" class="yui-dt-col-ALPHA">imiprairie</td>
					<td id="yui-0-3" headers="yui-header-3" class="yui-dt-col-NUMERIC"></td>
					<td id="yui-0-4" headers="yui-header-4" class="yui-dt-col-ALPHA"></td>
					<td id="yui-0-5" headers="yui-header-5" class="yui-dt-col-NUMERIC"></td>
					<td id="yui-0-6" headers="yui-header-6" class="yui-dt-col-ALPHA">2018-07-25</td>
					<td id="yui-0-7" headers="yui-header-7" class="yui-dt-col-ALPHA">2018-06-18</td>
					<td id="yui-0-8" headers="yui-header-8" class="yui-dt-col-ALPHA">2018-11-01</td>
					<td id="yui-0-9" headers="yui-header-9" class="yui-dt-col-ALPHA"></td>
					<td id="yui-0-10" headers="yui-header-10" class="yui-dt-col-ALPHA">203</td>
					<td id="yui-0-11" headers="yui-header-11" class="yui-dt-col-ALPHA">0004F3:12A72E</td>
					<td id="yui-0-12" headers="yui-header-12" class="yui-dt-col-ALPHA"></td>
					<td id="yui-0-13" headers="yui-header-13" class="yui-dt-col-ALPHA"></td>
					<td id="yui-0-14" headers="yui-header-14" class="yui-dt-col-edit">
						<a rel="modal" href="settings/edc/mod/439" title="Edit">
							<button></button>
						</a>
					</td>
					<td id="yui-0-15" headers="yui-header-15" class="yui-dt-col-recycle">
            <a rel="modal" href="settings/edc/rma/439" title="RMA">
              <button></button>
            </a>
          </td>
					
						
							<td id="yui-0-16" headers="yui-header-16" class="yui-dt-col-delete yui-dt-last">
								<a rel="modal" href="settings/edc/del/439" title="Delete Confirmation">
									<button></button>
								</a>
							</td>
						
					
				</tr>
			
				<tr class="yui-dt-even">
					<td id="yui-1-0" headers="yui-header-0" class="yui-dt-col-"><input type="checkbox" id="marked_440" name="440"></td>
					<td id="yui-1-1" headers="yui-header-1" class="yui-dt-col-ALPHA">wva-00:04:F3:12:A6:F7</td>
					<td id="yui-1-2" headers="yui-header-2" class="yui-dt-col-ALPHA">imiprairie</td>
					<td id="yui-1-3" headers="yui-header-3" class="yui-dt-col-NUMERIC"></td>
					<td id="yui-1-4" headers="yui-header-4" class="yui-dt-col-ALPHA"></td>
					<td id="yui-1-5" headers="yui-header-5" class="yui-dt-col-NUMERIC"></td>
					<td id="yui-1-6" headers="yui-header-6" class="yui-dt-col-ALPHA">2018-07-25</td>
					<td id="yui-1-7" headers="yui-header-7" class="yui-dt-col-ALPHA">2018-06-18</td>
					<td id="yui-1-8" headers="yui-header-8" class="yui-dt-col-ALPHA">2018-11-01</td>
					<td id="yui-1-9" headers="yui-header-9" class="yui-dt-col-ALPHA"></td>
					<td id="yui-1-10" headers="yui-header-10" class="yui-dt-col-ALPHA">203</td>
					<td id="yui-1-11" headers="yui-header-11" class="yui-dt-col-ALPHA">0004F3:12A6F7</td>
					<td id="yui-1-12" headers="yui-header-12" class="yui-dt-col-ALPHA"></td>
					<td id="yui-1-13" headers="yui-header-13" class="yui-dt-col-ALPHA"></td>
					<td id="yui-1-14" headers="yui-header-14" class="yui-dt-col-edit">
						<a rel="modal" href="settings/edc/mod/440" title="Edit">
							<button></button>
						</a>
					</td>
					<td id="yui-1-15" headers="yui-header-15" class="yui-dt-col-recycle">
            <a rel="modal" href="settings/edc/rma/440" title="RMA">
              <button></button>
            </a>
          </td>
					
						
							<td id="yui-1-16" headers="yui-header-16" class="yui-dt-col-delete yui-dt-last">
								<a rel="modal" href="settings/edc/del/440" title="Delete Confirmation">
									<button></button>
								</a>
							</td>
						
					
				</tr>
			
				<tr class="yui-dt-odd">
					<td id="yui-2-0" headers="yui-header-0" class="yui-dt-col-"><input type="checkbox" id="marked_441" name="441"></td>
					<td id="yui-2-1" headers="yui-header-1" class="yui-dt-col-ALPHA">wva-00:04:F3:12:A6:90</td>
					<td id="yui-2-2" headers="yui-header-2" class="yui-dt-col-ALPHA">imiprairie</td>
					<td id="yui-2-3" headers="yui-header-3" class="yui-dt-col-NUMERIC"></td>
					<td id="yui-2-4" headers="yui-header-4" class="yui-dt-col-ALPHA"></td>
					<td id="yui-2-5" headers="yui-header-5" class="yui-dt-col-NUMERIC"></td>
					<td id="yui-2-6" headers="yui-header-6" class="yui-dt-col-ALPHA">2018-07-25</td>
					<td id="yui-2-7" headers="yui-header-7" class="yui-dt-col-ALPHA">2018-06-18</td>
					<td id="yui-2-8" headers="yui-header-8" class="yui-dt-col-ALPHA">2018-11-01</td>
					<td id="yui-2-9" headers="yui-header-9" class="yui-dt-col-ALPHA"></td>
					<td id="yui-2-10" headers="yui-header-10" class="yui-dt-col-ALPHA">203</td>
					<td id="yui-2-11" headers="yui-header-11" class="yui-dt-col-ALPHA">0004F3:12A690</td>
					<td id="yui-2-12" headers="yui-header-12" class="yui-dt-col-ALPHA"></td>
					<td id="yui-2-13" headers="yui-header-13" class="yui-dt-col-ALPHA"></td>
					<td id="yui-2-14" headers="yui-header-14" class="yui-dt-col-edit">
						<a rel="modal" href="settings/edc/mod/441" title="Edit">
							<button></button>
						</a>
					</td>
					<td id="yui-2-15" headers="yui-header-15" class="yui-dt-col-recycle">
            <a rel="modal" href="settings/edc/rma/441" title="RMA">
              <button></button>
            </a>
          </td>
					
						
							<td id="yui-2-16" headers="yui-header-16" class="yui-dt-col-delete yui-dt-last">
								<a rel="modal" href="settings/edc/del/441" title="Delete Confirmation">
									<button></button>
								</a>
							</td>

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Спасибо за вашу помощь, ребята, вы все помогли найти решение.Я смог решить эту проблему с помощью другого подхода, найдя текст в массиве, а затем взяв его идентификатор и добавив его в другой список.Поскольку идентификаторы флажков отличаются только на один номер (т. Е. От yui-0-1 до yui-0-0), я просто изменил строку, чтобы соответствовать идентификатору флажка, чтобы выбрать его.

wvaIDs.add( driver.findElement(By.xpath("//*[contains(text(), '"+edcNumbers.get(i)+"')]")).getAttribute("id"));

char numToChange = wvaIDs.get(i).charAt(wvaIDs.get(i).length()-1);
int a=Integer.parseInt(String.valueOf(numToChange));  
a--; 
String newName = wvaIDs.get(i).substring(0,6)+a;
driver.findElement(By.id(newName)).click();
0 голосов
/ 10 марта 2019

Вместо использования XPath попробуйте найти элемент по идентификатору:

driver.findElement(By.id("yui-0-1")).click();

Я думаю, что это элемент, который вы пытались захватить в любом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...