首页 > 解决方案 > Selenium AttributeError 'list' 对象没有属性 send_keys

问题描述

我想使用 Selenium 自动登录网站https://clientes.ecuabots.com/user/login

这是我的代码:

class EcuabotsTest(unittest.TestCase):

def setUp(self):
    self.driver =  webdriver.Chrome(executable_path='/mnt/c/Users/Barbara/Documents/Formación Continua/Selenium/chromedriver.exe')
    driver = self.driver
    driver.get('https://clientes.ecuabots.com/user/login')
    driver.maximize_window()
    #driver.implicitly_wait(15)

def test_search_email_input(self):
    email_field = self.driver.find_elements_by_xpath('//*[@id="input-15"]')
    email_field.clear()
    
    email_field.send_keys('email@email.com)



if __name__ == "__main__":
    unittest.main(verbosity=2)

但是当我尝试这种方式时,我遇到了错误:AttributeError 'list' object has no attribute send_keys

非常感谢您的帮助!

标签: pythonpython-3.xseleniumselenium-webdriverselenium-chromedriver

解决方案


  1. 您必须等到页面加载并且元素出现在那里
  2. 你应该使用find_element_by_xpath,而不是find_elements_by_xpath
  3. 您的定位器错误

尝试这个:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

email_input_css = 'input[placeholder="Email Address"]'

wait = WebDriverWait(browser, 20)

email = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, email_input_css)))
email_field.clear()
email_field.send_keys('email@email.com)


推荐阅读