[英]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,但它沒有用。 怎么做?
我沒有運行您的代碼,但我檢查了 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 種方法。
//span[@data-cse="encryptedExpiryMonth"]/iframe
//span[@data-cse="encryptedExpiryYear"]/iframe
//span[@data-cse="encryptedSecurityCode"]/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.