у меня проблема с моим кодом в StringsProperty - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть ошибка в моем коде, я знаю, что это за ошибка, но я не знаю, как ее исправить.

вот мой код:

KV:

<Main>
    product: product

Screen:
    BoxLayout:
        size_hint: .8, .8
        pos_hint: {"center_x": .5, "y": .7}
        spacing: dp(100)
        orientation: "vertical"
        MDTextFieldRound:
            id: product
            hint_text: 'Enter a product'
            icon_left: 'magnify'
            on_text_validate: app.System() 

    FloatLayout:
        MDCard:
            orientation: "vertical"
            size_hint: .43, .3
            height: self.minimum_height
            pos_hint: {"x": .05, "y": .35}

            BoxLayout:
                id: box
                size_hint_y: None
                height: dp(150)

                MDLabel:
                    text: app.Ebay_text

PY:

class Main(MDApp):
    Window.size = (310, 520)
    title = "Best Price"
    def build(self):
        return Builder.load_string(KV)

    product = ObjectProperty(None)
    Ebay_text = StringProperty()

    def System(self):
        self.options = webdriver.ChromeOptions()
        self.options.add_argument('headless')
        self.options.add_argument('window-size=1920x1080')
        self.options.add_argument("disable-gpu")

        self.browser = 
        webdriver.Chrome('C://Users//Yesnia//Documents//chromedriver_win32//chromedriver.exe', 
        options=self.options)
        self.browser.get('https://www.ebay.com/')

        self.Esearch = self.browser.find_element_by_name('_nkw')
        self.Esearch.send_keys(self.root.ids.product.text)
        self.Esearch.send_keys(Keys.ENTER)
        self.url = self.browser.current_url

        self.browser.get('https://www.bestbuy.com.mx/')

        self.Bsearch = self.browser.find_element_by_id('gh-search-input')
        self.Bsearch.send_keys(self.root.ids.product.text)
        self.Bsearch.send_keys(Keys.ENTER)
        self.url1 = self.browser.current_url

        #Ebay extractor
        self.Ebay = Extractor.from_yaml_file('ebay.txt')
        self.r_ebay = requests.get(self.url)
        self.data_ebay = self.Ebay.extract(self.r_ebay.text)

        #bestbuy extractor
        self.Bestbuy = Extractor.from_yaml_file('Bestbuy.txt')
        self.r_bestbuy = requests.get(self.url1)
        self.data_bestbuy = self.Bestbuy.extract(self.r_bestbuy.text)

        print('Product ', self.root.ids.product.text)
        print('Ebay: ', self.data_ebay)
        print('Bestbuy: ', self.data_bestbuy)

        self.Ebay_text = self.data_ebay


if __name__ == "__main__":
    Main().run()

здесь есть ошибка:

 self.Ebay_data = self.data_ebay
 File "kivy\properties.pyx", line 497, in 
 kivy.properties.Property.__set__
 File "kivy\properties.pyx", line 541, in kivy.properties.Property.set
 File "kivy\properties.pyx", line 532, in kivy.properties.Property.set
 File "kivy\properties.pyx", line 698, in 
 kivy.properties.StringProperty.check
 ValueError: Main.Ebay_data accept only str

Я знаю, что проблема в том, что если я добавлю строку свойства к тексту, это должно быть с "некоторым текстом здесь", но есть ли решение, чтобы оно работало, но с той же функциональностью?

1 Ответ

0 голосов
/ 20 февраля 2020

Проблема была в том, что StringProperty принимает только str (), что вы можете сделать так:

python:

self.data_bestbuy = str(self.Bestbuy.extract(self.r_bestbuy.text))

Теперь вы даете переменной a ул Собственность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...