2016-06-28 1 views
1

Я пытаюсь проверить текст, который находится на экране, но не отображается в настоящее время в HTML-коде страницы. Я запускаю Selenium с языком программирования C#. Ниже приведена строка кода на странице HTML, в которой есть элемент, против которого я пытаюсь утверждать.C# - Как проверить текст, который не может быть найден в HTML-коде, но находится на странице

<input id ="TransferStatus" class="TransferStatus" name="" readonly="readonly" value="" type="text"></input> 

В тегу «Input» (который представляет собой окно rectangler, что имеет значение в этом), должен быть текст между тегами. Однако, как вы можете видеть в приведенном выше коде, для этого нет никакого текста. На странице у него будет текст, говорящий, что это «Complete».

Есть ли какой-либо способ получить этот текст, даже если я не вижу его в HTML-коде страницы?

+0

'input' не имеет закрывающий тег - это [аннулируются элемент] (http://w3c.github.io /html-reference/syntax.html#void-elements) ... Не совсем понятно, что вы подразумеваете под «текстом между тегами». –

+0

Извините, я предполагаю, что я хотел сказать вообще при попытке использовать метод «.Text». Спасибо, что освободил меня, я не знал об этом. – Tscott

ответ

1

Вы должны получить значение атрибута вместо получить текст:

string textValue = driver.FindElement(By.Id("TransferStatus")).GetAttribute("value"); 
+0

Но проблема, с которой я сейчас сталкиваюсь, заключается в том, что когда элемент присутствует или отсутствует, атрибуты «имя» и «значение» по-прежнему равны нулю. В этой строке кода ничего нет, хотя на фактической странице оно покажет значение. – Tscott

+0

@Tscott Вы уже пробовали мой ответ? – Buaban

+0

@Tscott Если атрибут value элемента ввода равен NULL, я думаю, что текст не из этого элемента; на этом элементе ввода может быть другой элемент. – Buaban

0

В вашем случае я думаю, что value не обновляется. Я рекомендую вам создать простой метод расширения: -

public static string InnerHtml(this IWebElement source) { 
      return source.GetAttribute("innerHTML"); 
} 

Благодаря ...

+0

Как бы реализовать это в моем скрипте? Будет ли источник просто местом веб-элемента? И будет ли это Absolute Xpath или что-то еще? – Tscott

+0

Его метод расширения, Скопируйте и вставьте в свой код, и он будет доступен в объекте IWebElement. для получения дополнительной информации http://www.dotnetperls.com/extension –

Смежные вопросы