AttributeError: объект 'list' не имеет атрибута 'send_keys' ошибка с использованием листа Excel для получения данных через Selenium и Python - PullRequest
0 голосов
/ 07 августа 2020

Это программа тестирования на основе данных, в которой идентификатор электронной почты и пароль берутся из таблицы Excel. Но я не могу получить данные из таблицы Excel с ошибкой. Скриншот я уже прикрепил.

Пробный код:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
import openpyxl
import XLUtilities
import time

driver=webdriver.Chrome(executable_path="C:/Users/sonu.j.kumar/Downloads/chromedriver_win32/chromedriver.exe")
driver.maximize_window()
driver.get("https://www.flipkart.com/account/login?ret=/")
driver.implicitly_wait(5)
path="C://Users/sonu.j.kumar/PycharmProjects/Login_Credentials.xlsx"

wb=openpyxl.load_workbook(path)
sheet=wb["Sheet1"]

user_name=(sheet['A2'].value)
print(user_name)
pwd=(sheet['B2'].value)
print(pwd)

driver.find_elements_by_xpath("//input[@autocomplete='off'][@class='_2zrpKA _1dBPDZ']").send_keys(user_name)
driver.find_elements_by_class_name("_2zrpKA _3v41xv _1dBPDZ").send_keys(pwd)

1 Ответ

0 голосов
/ 07 августа 2020

Это сообщение об ошибке ...

AttributeError: 'list' object has no attribute 'send_keys'

... подразумевает, что ваша программа попыталась вызвать метод send_keys() для элемента List .

send_keys (* value)

send_keys(*value) имитирует ввод текста в элемент.

Итак, send_keys() - это метод WebElement и не может быть вызван в List .

Решение

Вместо find_elements_by_xpath() и find_elements_by_class_name() нужно использовать find_element_by_xpath() и find_element_by_class_name(). Фактически ваша строка кода будет:

driver.find_element_by_xpath("//input[@autocomplete='off'][@class='_2zrpKA _1dBPDZ']").send_keys(user_name)
driver.find_element_by_class_name("_2zrpKA _3v41xv _1dBPDZ").send_keys(pwd)
...