2016-07-12 22 views
0

私はPythonでmysqlデータベースからユーザーとパスワードのみを取得し、Webページにアクセスしてログインするフォームを記入します。問題は、データベースに複数のユーザーがいて、ログインしてスクリプトを完全に完了したときですが、2番目のユーザーに渡されたときにコードの途中で停止し、次のメッセージが表示されます。Python Seleniumメッセージ:要素を見つけることができません

メッセージ{ "方法": "名前"、 "選択": "送信"}

ここでは私のコードである:

:要素が見つかりません
#!/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

実際、2回目の繰り返しでは、ログインフォームで同じページにアクセスしていないように見えます。セッションが終了していない可能性があります。手動でプロセスを繰り返してみましたか? – bbrincat

+0

その名前は「送信」ですhttp://imageshack.com/a/img924/2185/zA4an3.png –

関連する問題