TypeError:%支持的操作数类型:'tuple'和'str'

时间:2017-01-10 19:20:41

标签: python selenium

我有locators.py

class MainPageLocatars(object):
  # Login function locators
  TEST           = "//*[starts-with(@id,'table_')]/tbody/tr[%s]"

我正在调用此定位器,如下所示:

INDEX_MAP = {
    'First': '1',
    'Last': 'last()'
}

# all locaters for this class are defined here only
class ListView(Page):

    def __init__(self, driver, index):

        if index not in INDEX_MAP:
            raise ValueError("Invalid index %s" % index)

        self.driver = driver
        self.row = self.driver.find_element_by_xpath(MainPageLocatars.FRAMEONE % (INDEX_MAP[index])

这是正确的方法吗?

这是我得到的错误:

   self.row = self.driver.find_element_by_xpath(MainPageLocatars.FRAMEONE % (INDEX_MAP[index]))
   self.row = self.driver.find_element_by_xpath(MainPageLocatars.FRAMEONE % (INDEX_MAP[index]))
TypeError: unsupported operand type(s) for %: 'tuple' and 'str'

1 个答案:

答案 0 :(得分:1)

替换:

MainPageLocatars.FRAMEONE % (INDEX_MAP[index])

人:

MainPageLocatars.TEST % (INDEX_MAP[index])

进行字符串格式化。