簡體   English   中英

如何將密鑰發送到此元素

[英]How to send keys to this element

我正在使用 Python selenium chrome 驅動程序,我被困在填寫 csc 和信用卡信息字段的年份(看圖片)。 信用卡號和月份適用於此代碼:

        iframe = driver.find_element_by_xpath("//iframe[@class='js-iframe']")
        driver.switch_to.frame(iframe)
        inputCC = WebDriverWait(driver, 30).until(
            lambda driver: driver.find_element_by_id("encryptedCardNumber")
        )
        inputCC.send_keys("1111222233334444")
        driver.switch_to.default_content()

        time.sleep(1)
        iframe = driver.find_element_by_xpath("//iframe[@class='js-iframe']")
        driver.switch_to.frame(iframe)
        inputCC = WebDriverWait(driver, 30).until(
            lambda driver: driver.find_element_by_id("encryptedExpiryMonth")
        )
        inputCC.send_keys("08")
        driver.switch_to.default_content()

我嘗試對 csc 和 year 使用相同的方法來更改 id,但它沒有用。 怎么做?

信用卡媽媽控制台洞察力 信用卡年控制台洞察力 信用卡 csc 控制台洞察

我沒有運行您的代碼,但我檢查了 HTML 和您的代碼。 這是我的想法:

因為//iframe[@class='js-iframe']是一個很通用的 XPATH,所以需要更具體一些。 在您的站點中,您有許多具有相同 XPATH 的 iframe。

您可以填寫月份,因為在調用iframe = driver.find_element_by_xpath("//iframe[@class='js-iframe']")后,它會為您提供包含月份的第一個 iframe。

您的代碼在 Year/CSC 上失敗,因為它使用 FIRST iframe(包含月份)來定位 Year 和 CSC。


要修復,您有 2 種方法。

  1. 寫正確的 XPATH。
  • 月份 iframe: //span[@data-cse="encryptedExpiryMonth"]/iframe
  • 年份 iframe: //span[@data-cse="encryptedExpiryYear"]/iframe
  • CSC iframe: //span[@data-cse="encryptedSecurityCode"]/iframe
  1. 查找 iframe 列表
iframe_list = driver.find_elements_by_xpath("//iframe[@class='js-iframe']")
month_iframe = iframe_list[0]
year_iframe = iframe_list[1]
csc_iframe = iframe_list[2]

暫無
暫無

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

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