Как извлечь атрибут ID элемента DOM, если я знаю соответствующий текст через Selenium Webdriver и Java

Я использовал следующий код:

driver.getPageSource().contains("My value in text box");

Это позволит мне узнать, присутствует элемент в доме или нет.

Теперь мне нужно знать значение, содержащее текстовое поле «Мое значение в текстовом поле». Какой идентификатор этого текстового поля.


person deepak mishra    schedule 01.03.2019    source источник
comment


Ответы (1)


Чтобы извлечь id из элемента dom, вам не нужно вызывать getPageSource(). Вы можете просто использовать метод getAttribute() следующим образом:

String elementID = driver.findElement(By.xpath("//*[contains(text(),'My value in text box')]")).getAttribute("id");
person DebanjanB    schedule 01.03.2019
comment
Только предостережение: иногда текст содержится в метке, а не в элементе ввода. Однако обычной практикой для этой метки является наличие атрибута for, который содержит идентификатор элемента ввода. Я бы сначала проверил тег возвращенного xpath, чтобы увидеть, является ли он меткой, а затем получил фактический ввод через идентификатор, в противном случае было бы достаточно безопасно предположить, что это то, что вы искали. - person Bill Hileman; 02.03.2019