Selenium getText поведение - PullRequest
       9

Selenium getText поведение

1 голос
/ 22 марта 2011

У меня есть HTML-файл, который должен быть проанализирован с помощью селена.Мне нужно извлечь текст, содержащийся в теге div, который имеет уникальный id.Исходный файл выглядит следующим образом:

<div id="debugState" style="display:none"> 
            Model: ModelCode[UK51]
            Features: [S08TL, S0230, S0851, S0428, S01CD, S0879, S01CA, S08SP, S0698,  S01CB, S0548, S08SC, S08TM, S04AK, S01CC, S0801]
            Packages: [S0801]
</div>

Выполненная команда выглядит следующим образом: selenium.getText("//div[@id='debugState']"); и результатом является пустая строка (вместо содержащегося текста).Я делаю что-то не так или это ожидаемый результат из-за переключателя style="display:none".

Ответы [ 2 ]

1 голос
/ 20 июля 2012

У меня действительно тяжелые времена, когда я пытаюсь получить текст внутри веб-элементов с помощью метода getText (). Например, если вы пытаетесь получить текст в элементе после его обновления, используя:

WebElement test = driver.findElement(By.id("idvalue"));

при печати содержимого текста с помощью API WebElement.getText () в итоге вы получите старое значение, содержащееся до обновления поля.

Я предлагаю получить доступ к информации DOM, выполнив JScript (в моем случае я уже включил jQuery на страницу, которую я тестировал с Selenium). Даже если элемент скрыт, как в вашем случае, вы получите то, что вам нужно.

String test = (String)((JavascriptExecutor)driver).executeScript("return $('#idvalue').text()");

p.s. Я использую jQuery text (), предполагая, что мое idvalue является элементом DIV

1 голос
/ 23 марта 2011

Вы пытались удалить атрибут style="display:none", чтобы увидеть, как он влияет на ваш тест?Согласно JavaDoc этот метод должен делать то, что вам нужно.

...