Привет, я пытаюсь автоматизировать сценарий, в котором поиск запускается с использованием названия города, и это даст мне список доступных центров тестирования в городе с флажками для выбора необходимого центра тестирования. Я пробовал много способов, но не смог выбрать центр тестирования на основе «почтового кода», доступного в тексте метки.
Есть 2 центра тестирования (testCenter_1 и testCenter_2), как показано в коде ниже, и каждый центр тестирования имеет флажок, а его адрес отображается в теге метки. Я пытаюсь найти и выбрать Центр тестирования 2 на основе его почтового индекса (HP19 8GJ) в теге метки.
<div class="container">
<div class="row">
<div class="col-md-7 col-sm-12">
<div id="testCenterList">
<div style="visibility:hidden;">
</div>
<table cellspacing="0" id="centerTable">
<caption class="access">This table lists the test centres closest to the area that searched </caption>
<thead>…</thead>
<tbody id="testCenterListTable">
<tr id="testCenter_1" class="group0">
<td class="selectRow displayDesktopOnlyView" scope="row">
<input id="selectedTestCenters:1" type="checkbox" name="selectedTestCenters" value="48958">
<label for="selectedTestCenters:1" class="access"> Pearson Centre - 9 Lloyds Street Northampton NN1 2NP</label>
</td>
</tr>
<tr id="testCenter_2" class="group0">
<td class="selectRow displayDesktopOnlyView" scope="row">
<input id="selectedTestCenters:2" type="checkbox" name="selectedTestCenters" value="79312">
<label for="selectedTestCenters:2" class="access"> Pearson Centre - 5 Smeaton Close Aylesbury HP19 8GJ</label>
</td>
<td>
</tr>
Нажмите здесь, чтобы увидеть снимок экрана с кодом
Я мог выбрать testCenter_2, используя xpath и id, как показано ниже, но не смог придумать общий локатор для идентификации одного центра тестирования на основе их текста метки. Примечание: я использовал здесь условие видимости элемента, так как результаты поиска отображаются внизу страницы.
WebDriverWait wait = new WebDriverWait(driver, 10000);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*@id='selectedTestCenters:2']")));
driver.findElement(By.xpath("//*[@id='selectedTestCenters:2']")).click();
Чтобы найти центр тестирования 2 на основе текста метки и установить флажок, я использовал строку ниже но это дает мне ElementNotInteractableException.
driver.findElement(By.xpath("//*[@id='testCenterListTable']/tr[2]/td/label[contains(text(),'HP19 8GJ')]")).click();
Предложения, пожалуйста?
Заранее спасибо