Поиск метки поля ввода в Selenium Webdriver - PullRequest
0 голосов
/ 10 мая 2019

У меня есть форма, где каждое текстовое поле имеет заголовок. У меня уже есть WebElement текстовых полей, и я хочу сослаться на их заголовок (заголовок, на который указывает "for=id").

Я пробовал их getText, который возвращает только текст в поле ввода, пробовал getCssValue("label"), который ничего не возвращает. Я попытался найти все ярлыки, но это не помогло, так как мне все равно пришлось бы просеять их все и найти 8 разных ярлыков, которые должны иметь *.

<label for="customer_firstname">First name <sup>*</sup></label>
<input onkeyup="$('#firstname').val(this.value);" type="text" class="is_required validate form-control" data-validate="isName" id="customer_firstname" name="customer_firstname" value="">

Я хочу вернуть строку текста метки, чтобы я мог проверить (with .contains()), содержит ли он в конце "*". Желательно с как можно меньшим количеством Xpath.

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

если теги Input и label принадлежат одному и тому же родительскому элементу, вы можете сначала выбрать уникальный xpath родителей, а затем, добавив //, получить доступ к тегу label и получить текст. Вы должны добраться до метки тега, найдя уникальный xpath и использовать .gettext (), тогда вы получите внутренний текст метки тега.

0 голосов
/ 10 мая 2019

для обозначения тега метки с помощью входного тега, вы можете использовать этот xpath:

//input[@id='customer_firstname']/preceding-sibling::label

если вы просто хотите ввести поле ввода, вы должны использовать идентификатор, который, на мой взгляд, уникален в вашем случае, хотя вам придется проверить это в DOM.

id = customer_firstname

Для ссылок с <label **for**>

Вы можете использовать этот код:

String  custLabelAttribute = driver.findElement(By.xpath("//input[@id='customer_firstname']/preceding-sibling::label")).getAttribute("for")

это должно вывести: customer_firstname

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