【问题标题】:Selenium Python - Clicking button by XPATH errorSelenium Python - 通过 XPATH 错误单击按钮
【发布时间】:2019-10-12 20:16:35
【问题描述】:

我正在尝试单击网站上的登录按钮,但我继续收到错误消息。

我尝试过通过 xpath、id、text 和其他方式获取元素,但没有一个对我有用。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import random

while True:
    time.sleep(4)
    browser = webdriver.Chrome("C:\webdrivers/chromedriver.exe")
    #browser = webdriver.Chrome()
    browser.get("https://www.brickplanet.com/login")

    username = browser.find_elements_by_xpath('//*[@id="username"]')
    #username.clear()
    #username.send_keys('KOMKO190')

    password = browser.find_elements_by_xpath('//*[@id="password"]')
    #password.clear()
    #password.send_keys('this is my password btw!')

    login = browser.find_elements_by_id("submit")
    login.click()

我遇到的错误:

Traceback (most recent call last):
  File "C:\Users\DOMA\Desktop\bp hack.py", line 23, in <module>
    login.click()
AttributeError: 'list' object has no attribute 'click'

Process returned 1 (0x1)        execution time : 13.061 s
Press any key to continue . . .

【问题讨论】:

  • 嘿,对不起,不是按 XPATH 而是按 ID 点击,抱歉我的小错误!
  • 每当您遇到不知道如何解决的错误时,您应该做的第一件事就是用谷歌搜索该错误。您极不可能是第一个收到该错误消息的人,您可能会在网上找到很多讨论错误和可能解决方案的信息。
  • 是的,但现在即使出现错误我也找不到如何继续程序
  • 您在此处发布的代码有时不会让您出现这种错误......每次运行它都会发生这种情况。

标签: python selenium web-scraping


【解决方案1】:

您正在使用返回元素列表的 find_elements_by_id,这就是您收到错误的原因 - 如果您正在寻找单个元素,则使用 find_element_by_id(“元素”而不是“元素”)。这将返回在 DOM 中首先找到的单个元素。

【讨论】:

  • 这个元素只是偶尔出现,不是一直出现,如果它没有看到它,我将如何让它继续程序?
猜你喜欢
  • 2016-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-19
  • 1970-01-01
  • 2021-03-18
  • 1970-01-01
相关资源
最近更新 更多