2016-07-12 172 views
0

我開發了一個Python的網頁抓取工具,它只從mysql數據庫中獲取用戶名和密碼,然後轉到網頁並填寫表單進行登錄,直到這裏一切正常,問題是當我的數據庫中有超過1個用戶時,它登錄並完全完成腳本,但是當它傳遞給第二個用戶時,它停在代碼的中間並顯示下一條消息: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

實際上,自第二次迭代以來 - 聽起來好像你沒有登錄到登錄表單的同一頁面。這可能是會議沒有結束。你有沒有嘗試手動重複這個過程? – bbrincat

+0

它的名字是「submit」http://imageshack.com/a/img924/2185/zA4an3.png –

相關問題