【问题标题】:Python Selenium TypeError: cannot concatenate 'str' and 'WebElement' objectsPython Selenium TypeError:无法连接“str”和“WebElement”对象
【发布时间】:2015-07-24 22:28:38
【问题描述】:

我正在使用 Python 和 Selenium Webdriver 我有一个文本字段的值为 1,000.000 我正在使用 if 语句来检查文本字段中的值是否 = 1,000.000 如果是,则通过,否则我使用 send_keys 并在文本字段中输入 1,000.000。

我收到以下错误: TypeError: 无法连接 'str' 和 'WebElement' 对象

Error
Traceback (most recent call last):
File "C:\Webdriver\reverted to backup\ClearCore 501\TestCases\DataPreviewsPage_TestCase.py", line 93, in test_add_DataPreviews
dp.is_maxrecords_1000_displayed()
File "C:\Webdriver\reverted to backup\ClearCore 501\Pages\data_previews.py", line 76, in is_maxrecords_1000_displayed
print "max_records_textfield does not have default value 1,000.00 The value  is = " + max_records_textfield
TypeError: cannot concatenate 'str' and 'WebElement' objects

我的代码 sn-p 是:

max records textfield 默认值为 1,000.000

    def is_maxrecords_1000_displayed(self):
        max_records_textfield = self.driver.find_element(*MainPageLocators.datapreviews_maxrecords_textfield2)
        print "max_records_textfield = ",  max_records_textfield.get_attribute('value')
        if max_records_textfield.get_attribute('value') == "1,000.000":
            print "max_records_textfield" + max_records_textfield.get_attribute('value')
        else:
            print "max_records_textfield does not have default value 1,000.00 The value is = " + max_records_textfield
            print "Going to enter 1,000.00 into the textfield"
            max_records_textfield.send_keys("1,000.00")

我需要将 webelement (max_records_textfield) 转换为字符串变量吗? 我该怎么做?

【问题讨论】:

  • 使用 - max_records_textfield.get_attribute('value') ,而不是 WebElement - print "max_records_textfield does not have default value 1,000.00 The value is = " + max_records_textfield.get_attribute('value')

标签: python python-2.7 selenium-webdriver webdriver


【解决方案1】:

错误信息非常清楚,您正在尝试将字符串与WebElement 对象连接。

如果您想打印它的值,请使用 - max_records_textfield.get_attribute('value')(就像您在 if 条件和 if 块内的打印语句中使用的那样)-

print "max_records_textfield does not have default value 1,000.00 The value is = " + max_records_textfield.get_attribute('value')

【讨论】:

  • 啊,我忘记了最后的 .get_attribute('value') 。它现在正在工作。谢谢。
猜你喜欢
  • 2011-05-25
  • 1970-01-01
  • 2011-10-23
  • 2015-09-01
  • 2020-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-01
相关资源
最近更新 更多