Извлечение значения текста с помощью getElementText - Rselenium - PullRequest
0 голосов
/ 11 января 2019

Я занимаюсь разработкой средства автоматизации для тестирования графического интерфейса внутреннего приложения. Инструмент автоматизации основан на Rselenium. Я пытаюсь проверить правильность написания, для этого я хочу извлечь текст из HTML-источника.

Я хочу извлечь part1 в HTML-код ниже.

Помощь будет высоко ценится.

HTML source code:

<html class>
<head>
<body>
<div id="header">
<h1 style>part1</h1>
<h4 style>part2</h4>
</div>
</body>
</html> 

Код Rselenium, который я использовал:

x <- remDr$findElement("id","header")
z <- x$getElementText()[[1]]
get("z")

Ожидаемый результат ------> part1

Фактический результат --------> part1 \ npart2

Ответы [ 2 ]

0 голосов
/ 15 января 2019
x <- remDr$findElement("xpath",'//*[@id="part1"]/h1')
z <- x$getElementText()
get("z")

Дает ожидаемый результат: part1

0 голосов
/ 11 января 2019

Вы можете извлечь страницу html, используя

wp <- remDr$getPageSource()

и затем с помощью rvest выберите нужный узел

rvest::html_text(rvest::html_nodes(wp, 'h1'))

Вот полный пример

# the html provided
html <- '<html class>
<head>
<body>
<div id="header">
<h1 style>part1</h1>
<h4 style>part2</h4>
</div>
</body>
</html> '

# read it as html
wp <- xml2::read_html(html)

# extract the data
rvest::html_text(rvest::html_nodes(wp, 'h1'))
# [1] "part1"
...