簡體   English   中英

Selenium 'find_element_by_XPath' 的簡單問題

[英]Simple question for Selenium 'find_element_by_XPath'

我對 Python 很陌生,我想嘗試為以下憑據進行銀行自動化:

https://olb.ccb.com/CCBIS/V6/STY4/B5/login_hk.jsp

在此處輸入圖像描述

我嘗試使用以下代碼將登錄 ID 發送到屏幕,但它顯示以下錯誤:

driver.find_element_by_xpath('/html/body/form[1]/div/table/tbody/tr[2]/td/div/input').send_keys('abcd_1234')

在此處輸入圖像描述

selenium.common.exceptions.NoSuchElementException:消息:沒有這樣的元素:無法找到元素:{“method”:“xpath”,“selector”:“/html/body/form 1 /div/table/tbody/tr 2 / td/div/輸入"}

有誰可以幫助我如何將密鑰發送到輸入?

謝謝!

我檢查了網站,發現問題不僅是因為您的 xpath。 登錄名放在另一個 iframe 中。 因此,您需要切換到 iframe 以便將密鑰發送到登錄和密碼字段。此外,您應該使用 id 而不是絕對 xpath。 試試下面的代碼。 我已經對其進行了測試,因此它應該可以工作。

    driver.get("https://olb.ccb.com/CCBIS/V6/STY4/EN/login_hk.jsp")
    iframe = driver.find_element_by_id("fclogin")
    driver.switch_to.frame(iframe)
    time.sleep(2)
    driver.find_element_by_id("USERID").send_keys("admin")
    time.sleep(2)
    driver.find_element_by_id("LOGPASS").send_keys("admin")
    time.sleep(2)
    driver.switch_to.default_content()
    driver.quit()

如果您更關心使用 webdriver 等待的穩定性和速度,則更理想的方法是這樣。

wait = WebDriverWait(driver, 10)
driver.get("https://olb.ccb.com/CCBIS/V6/STY4/EN/login_hk.jsp")
wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID, "fclogin")))
wait.until(EC.element_to_be_clickable((By.ID, "USERID"))).send_keys("admin")
wait.until(EC.element_to_be_clickable((By.ID, "LOGPASS"))).send_keys("admin")
driver.switch_to.default_content()

進口

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC

請嘗試以下 XPATH 代替:

driver.find_element_by_xpath("//INPUT[@id='USERID']").send_keys("abcd_1234")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM