Selenium Python使用get_attribute(' value')打印出textfield的值不会打印该值。我打印空白

时间:2016-08-08 14:21:21

标签: python-2.7 selenium selenium-webdriver

我正在尝试打印出文本字段的值。该值未打印出来,我得到一个空白输出,为空。文本字段在网页上有一个值。 我正在使用name_element.get_attribute(' value')这应该打印文本字段的值。我不知道为什么它不适合我。

在PyCharm中,控制台输出是: print_value_from_name_textfield

下一行没有打印出值print_element.get_attribute(' value')

我期待价值"数据对象名称"要打印,因为这是网页上文本字段中的值。我得到一个空白的输出。

我的代码段是:

  AlertDialog.Builder setIcon (int iconId)

HTML是:

def print_value_from_name_textfield(self):
    name_element = self.get_element(*MainPageLocators.data_objects_Name_textfield_edit)
    print "print_value_from_name_textfield"
    print name_element.get_attribute('value')

在MainPageLocators中,textfield id定义为:

    <div class="marginbelow">
        <span class="gwt-InlineLabel defaultFormLabelWidthCompact myinlineblock">Name</span>
        <input id="data_configuration_edit_data_object_tb_name" class="gwt-TextBox" type="text"/>
    </div>

get_element实现是:

from selenium.webdriver.common.by import By
class MainPageLocators(object):
    data_objects_Name_textfield_edit = (By.ID, 'data_configuration_edit_data_object_tb_name')

我做错了什么? 谢谢, 里亚兹

1 个答案:

答案 0 :(得分:1)

如果遗憾的是get_attribute('value')不起作用,您可以尝试使用execute_script()获取输入值,如下所示: -

print self.driver.execute_script("return arguments[0].value",name_element)

已编辑:如果输入字段中的值在一段时间后加载,则应在查找输入元素之前实现一些隐式等待,如下所示:

self.driver.implicitly_wait(10)

name_element = self.get_element(*MainPageLocators.data_objects_Name_textfield_edit)
print "print_value_from_name_textfield"
print name_element.get_attribute('value')