<p>看起来您在切换帧时遇到了问题。请按照下面的代码行进行注释</p>
<pre><code> driver.switch_to.frame(driver.find_element_by_class_name("card-fields-iframe"))
</code></pre>
<p>您位于frame<strong>卡字段iframe</strong>中,现在如下所示</p>
<pre><code> WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[contains(@title,'Expiration date')]")))
</code></pre>
<p>它将尝试在iframe</strong>的<strong>卡字段中搜索框架<strong>到期日期。接下来的两帧,依此类推。我不确定你的帧是否像这样层叠。如果卡片上的这些框架名称、有效期等彼此不在一起,请在执行操作后转到父框架,在父框架中隐藏所有这些名称</p>
<pre><code>driver.driver.switch_to.parent_frame()
</code></pre>
<p><strong>注意:</strong>我不确定您购买的是哪个国家。然而,我已经在我的位置(新加坡)做了,并能够点击以下代码付款。请参阅,新加坡的物体和框架与您的位置不同</p>
<pre><code>driver.get("https://kith.com/collections/mens-apparel/products/mc8g75300v8162-984")
WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//a[text()='Shop now']"))).click()
WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//span[contains(text(),'Add to Cart')]"))).click()
WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='btn ajaxcart__checkout']"))).click()
WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//a[text()='I ACCEPT COOKIES']"))).click()
WebDriverWait(driver, 30).until(EC.frame_to_be_available_and_switch_to_it((By.NAME,"Intrnl_CO_Container")))
WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.XPATH, '//div[contains(text(),"Order Summary")]')))
# Buyer Details
driver.find_element_by_xpath('//input[@placeholder="First Name"]').send_keys('first')
driver.find_element_by_xpath('//input[@placeholder="Last Name"]').send_keys('last')
driver.find_element_by_xpath('//input[@placeholder="Email"]').send_keys('example@gmail.com')
driver.find_element_by_id('CheckoutData_BillingAddress1').send_keys('address')
driver.find_element_by_id('BillingCity').send_keys('town')
driver.find_element_by_id('BillingZIP').send_keys('999999')
driver.find_element_by_xpath('//input[@placeholder="Mobile Phone"]').send_keys('9999999999' + u'\ue007')
# card number
driver.switch_to.frame('secureWindow')
driver.find_element_by_id("cardNum").send_keys('5225517926810376')
month = Select(driver.find_element_by_id('cardExpiryMonth'))
year = Select(driver.find_element_by_id('cardExpiryYear'))
month.select_by_index(1)
year.select_by_index(4)
driver.find_element_by_id("cvdNumber").send_keys('124')
# Click on payment. Its not inside secure window Frame rather its under parent frame of it
driver.switch_to.parent_frame()
paybtn = driver.find_element_by_id('btnPay')
driver.execute_script("arguments[0].scrollIntoView();", paybtn)
paybtn.click()
</code></pre>