python - 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
我尝试使用 email_field = self.driver.find_element_by_xpath('// [@id="input-15"]') (单数)但我收到此错误:selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素: {"method":"xpath","selector":"// [@id="input-15"]"
我尝试使用 id、CSS 选择器和完整 XPath 查找电子邮件输入,但它不起作用
我尝试使用 email_field[0].send_keys('email@email.com) 但我再次收到第一个错误
非常感谢您的帮助!
解决方案
- 您必须等到页面加载并且元素出现在那里
- 你应该使用
find_element_by_xpath
,而不是find_elements_by_xpath
- 您的定位器错误
尝试这个:
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)
推荐阅读
- python - WindowsContext: OleInitialize() failed: "COM error 0x80010106 RPC_E_CHANGED_MODE (Unknown error 0x0ffffffff80010106)"
- arrays - Swift:追加到字典中返回随机
- svn - 如何仅签出给定父目录的特定子目录未签出
- javascript - 发布空正文(长度为 0 的字符串)
- ionic-framework - ERROR 错误:尝试比较“[object Object]”时出错。ionic 中只允许使用数组和可迭代对象
- visual-studio-code - VS代码`\`下划线不够长
- r - 重复的预测给出相同的值
- javascript - 如何在单击angularjs中的按钮时将文本框值添加到数组并添加所需的功能
- javascript - 以表格格式排列 JSON 字符串
- javascript - f.state 不是功能 wordpress