如何将键发送到此元素
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()
我尝试通过更改 ID 对 csc 和年份使用相同的方法,但没有用。
怎么做?
我没有 运行 你的代码,但我检查了 HTML 和你的代码。这是我的想法:
因为//iframe[@class='js-iframe']
是一个非常通用的XPATH,你需要更具体一些。在您的站点中,您有许多具有相同 XPATH 的 iframe。
您可以填写月份,因为在调用 iframe = driver.find_element_by_xpath("//iframe[@class='js-iframe']")
之后,它会为您提供包含月份的第一个 iframe。
您的代码因 Year/CSC 而失败,因为它使用第一个 iframe(包含月份)来定位年份和 CSC。
要修复,您有 2 种方法。
- 写入正确的 XPATH。
- 月份 iframe:
//span[@data-cse="encryptedExpiryMonth"]/iframe
- 年 iframe:
//span[@data-cse="encryptedExpiryYear"]/iframe
- CSC iframe:
//span[@data-cse="encryptedSecurityCode"]/iframe
- 查找 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]
我正在使用 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()
我尝试通过更改 ID 对 csc 和年份使用相同的方法,但没有用。 怎么做?
我没有 运行 你的代码,但我检查了 HTML 和你的代码。这是我的想法:
因为//iframe[@class='js-iframe']
是一个非常通用的XPATH,你需要更具体一些。在您的站点中,您有许多具有相同 XPATH 的 iframe。
您可以填写月份,因为在调用 iframe = driver.find_element_by_xpath("//iframe[@class='js-iframe']")
之后,它会为您提供包含月份的第一个 iframe。
您的代码因 Year/CSC 而失败,因为它使用第一个 iframe(包含月份)来定位年份和 CSC。
要修复,您有 2 种方法。
- 写入正确的 XPATH。
- 月份 iframe:
//span[@data-cse="encryptedExpiryMonth"]/iframe
- 年 iframe:
//span[@data-cse="encryptedExpiryYear"]/iframe
- CSC iframe:
//span[@data-cse="encryptedSecurityCode"]/iframe
- 查找 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]