Python Selenium消息:无法定位元素

时间:2016-07-12 23:15:32

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

我在Python中开发一个web scraper,只从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()

1 个答案:

答案 0 :(得分:-1)

看起来您尝试单击的按钮的名称未被调用"提交",因此似乎没有具有该名称的元素,因此它失败。你能用浏览器开发工具找到这个名字吗?