Добавить не может "l oop" мой код поиска в Python - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь создать код, который ищет (числовой код, называемый «cpf») и возвращает мне информацию, которую покажет URL. Код работает правильно с одним cpf, но функция добавления видит, что он работает неправильно ...

    def search_cpfs(self):
    names = []
    consigs = []
    cards = []
    for cpf in self.cpfs:
        print(f"Procurando {cpf}.")

        self.driver.get(self.bot_url)

        cpf_input = self.driver.find_element_by_xpath('//*[@id="search"]/div/div[1]/input')
        cpf_input.send_keys(cpf)

        time.sleep(2)

        cpfButton = self.driver.find_element_by_xpath('//*[@id="search"]/div/div[2]/button')
        cpfButton.click()

        time.sleep(2)

        name = self.driver.find_element_by_xpath("/html/body/main[1]/div[1]/div[1]/div[1]/div[1]/h2").text
        consig = self.driver.find_element_by_xpath("/html/body/main[1]/div[1]/div[1]/div[3]/div[2]/span").text
        card = self.driver.find_element_by_xpath("/html/body/main[1]/div[1]/div[1]/div[3]/div[3]/span").text

        names.append(name)
        consigs.append(consig)
        cards.append(card)

        print(name, consig, card)

        return names, consigs, cards

1 Ответ

0 голосов
/ 11 апреля 2020

Возможно из-за отступа? Ваш текущий код показывает / возвращает только один / первый результат.

Попробуйте это:

def search_cpfs(self):
    names = []
    consigs = []
    cards = []
    for cpf in self.cpfs:
        print(f"Procurando {cpf}.")

        self.driver.get(self.bot_url)

        cpf_input = self.driver.find_element_by_xpath('//*[@id="search"]/div/div[1]/input')
        cpf_input.send_keys(cpf)

        time.sleep(2)

        cpfButton = self.driver.find_element_by_xpath('//*[@id="search"]/div/div[2]/button')
        cpfButton.click()

        time.sleep(2)

        name = self.driver.find_element_by_xpath("/html/body/main[1]/div[1]/div[1]/div[1]/div[1]/h2").text
        consig = self.driver.find_element_by_xpath("/html/body/main[1]/div[1]/div[1]/div[3]/div[2]/span").text
        card = self.driver.find_element_by_xpath("/html/body/main[1]/div[1]/div[1]/div[3]/div[3]/span").text

        names.append(name)
        consigs.append(consig)
        cards.append(card)

        print(name, consig, card)

    return names, consigs, cards

Я предполагаю, что функция находится в классе.

...