【问题标题】:Python Selenium Message: Unable to locate elementPython Selenium 消息:无法找到元素
【发布时间】:2016-07-12 23:15:32
【问题描述】:

我正在用 Python 开发一个网络爬虫,它只从 mysql 数据库中获取用户和密码,然后它转到一个网页并填写表单以登录,直到这里一切正常,问题是当我有超过我的数据库中有 1 个用户,它登录并完全完成脚本,但是当它传递给第二个用户时,它会在代码中间停止并显示下一条消息:

消息:无法定位元素:{"method":"name","selector":"submit"}

这是我的代码:

#!/usr/bin/python
# -*- coding: utf-8 -*-

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import MySQLdb

db = MySQLdb.connect(host="127.0.0.1", user="root", passwd="", db="seliso")

cursor = db.cursor()

cursor.execute("SELECT * FROM usuarios")

for row in cursor.fetchall():
    rfc = row[1]
    clave = row[2]

    driver = webdriver.Firefox()
    driver.get("https://login.siat.sat.gob.mx/nidp/idff/sso?id=mat-ptsc-totp&sid=10&option=credential&sid=10")

    username = driver.find_element_by_name("Ecom_User_ID")
    password = driver.find_element_by_name("Ecom_Password")

    username.send_keys(rfc)
    password.send_keys(clave)

    submit = driver.find_element_by_name("submit")

    submit.click()

    driver.get("https://www.siat.sat.gob.mx/PTSC/")

    link = driver.find_element_by_link_text("Buzón tributario")
    link.click()

    driver.get("https://www.siat.sat.gob.mx/PTSC/cerrarSesion")

    driver.close()

db.close()

【问题讨论】:

    标签: python forms web web-scraping screen-scraping


    【解决方案1】:

    您尝试单击的按钮的名称似乎不是“提交”,因此似乎没有具有该名称的元素,因此它失败了。您可以使用浏览器开发工具找到名称吗?

    【讨论】:

    • 实际上,因为它是在第二次迭代 - 听起来您没有使用登录表单进入同一页面。可能是会话没有关闭。您是否尝试过手动重复该过程?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    相关资源
    最近更新 更多