2015-09-17 3 views
1

Я пытаюсь получить значение текстового поля. Текстовое поле находится в теге ввода в html. Я хочу распечатать его значение. Я ничего не печатаю на консоли. я определил элемент со следующим XPATHSelenium Webdriver Python Как получить текст из тега ввода

By.XPATH, '//span[@class="gwt-InlineLabel marginbelow myinlineblock" and contains(text(), "Type")]/following-sibling::*' 

Мой код сниппета

def get_type_field_value(self): 
     type_field_element = self.driver.find_element(By.XPATH, 'By.XPATH, '//span[@class="gwt-InlineLabel marginbelow myinlineblock" and contains(text(), "Type")]/following-sibling::*'') 
     print type_field_element.text 

HTML, является:

<div class="clear"> 
    <span class="gwt-InlineLabel marginbelow myinlineblock" style="width: 8em;">Type</span> 
    <input class="gwt-TextBox marginbelow" type="text" disabled="" style="display: inline;"/> 
</div> 

Я также попробовал следующий метод:

def get_type_field_value2(self): 
    return self.driver.execute_script(""" 
     return jQuery(arguments[0]).contents().filter(function() { 
     return this.nodeType == Node.TEXT_NODE; 
     }).text(); 
     """, self.driver.find_element(By.XPATH, '//span[@class="gwt-InlineLabel marginbelow myinlineblock" and contains(text(), "Type")]/following-sibling::*')) 

я получаю ошибку JavaScript:

raise exception_class(message, screen, stacktrace) 
WebDriverException: Message: JavaScript error 

Как я получить значение текстового поля?

Спасибо,

+0

Там нет текста в HTML в '' тега. –

+0

Так что я не могу использовать. Затем текст. Как мне получить значение тогда. Ах, я мог бы использовать .value. Значение для входных тегов. Я попробую это. –

ответ

3

Поскольку значение является просто атрибут HTML, вы можете получить значение атрибута с помощью -

print type_field_element.get_attribute('value') 
+0

Это отлично работает. Спасибо. –

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