Я тестирую приложение, и в приложении есть таблица, содержащая флажки (3 строки, x столбцов). Ниже приведен html для части этой таблицы (1row). Я пытаюсь щелкнуть по тексту одного из этих элементов, чтобы выбрать или снять флажок на основе текста. Так, например, я хочу щелкнуть по тексту «Текст рядом с флажком для nr 8», чтобы выбрать это текстовое поле. Тем не менее, я не хочу идти туда через жесткий xpath, используя код, например/table/tbody/tr [2]/td [2]/div/span) [2], но на основе текста. Я пытаюсь код, как те ниже, но они, кажется, не работает:Элемент поиска неисправностей
driver.findElement(By.xpath("(//*[@class='settingsPanelTD' and text()='Text next to checkbox for nr 8']")).click();
driver.findElement(By.xpath("(//*[@class='settingswidgetTitle' and text()='Text next to checkbox for nr 8']")).click();
driver.findElement(By.xpath("(//*[@class='settingswidgets' and text()='Text next to checkbox for nr 8']")).click();
Я хотел бы создать строку для окончательного XPath, так что вы только изменить текст, который вы хотите нажать изменить тест, что-то вроде:
String text = "Text next to checkbox for nr 8"; /** variable text based on what you want to click */
String locator = "//*[@class='settingswidgets' and text()='";
String xpathitem = locator + text + "']";
driver.findElement(By.xpath(xpathitem)).click();
это HTML:
<td class="settingsPanelTD" width="33%">
<div class="settingwidgetsTitle">
<input id="widgetsettings8" class="settingwidgets" type="checkbox" alt="2">
<span>Text next to checkbox for nr 8</span>
<a class="AddWidget" href="#"></a>
</div>
</td>
<td class="settingsPanelTD" width="33%">
<div class="settingwidgetsTitle">
<input id="widgetsettings9" class="settingwidgets" type="checkbox" alt="2">
<span>Text next to checkbox for nr 9</span>
<a class="AddWidget" href="#"></a>
</div>
</td>
<td class="settingsPanelTD" width="33%">
<div class="settingwidgetsTitle">
<input id="widgetsettings9" class="settingwidgets" type="checkbox" alt="2">
<span>Text next to checkbox for nr 10</span>
<a class="AddWidget" href="#"></a>
</div>
</td>
Я использую затмение, Селен и Java.
Спасибо! который работал как шарм. Не знал, что вы также можете использовать текст диапазона. Все еще новое в этом и обучение. – Hugo