我正在Shopify结帐页面上运行测试脚本,虽然我能够切换到iFrame并获取“卡号”元素,但其他输入元素似乎无法使用相同的方法(id ='到期”,id =“名称”等)
Form screenshot Inspect iFrame screenshot
WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@class='card-fields-iframe']")))
element12 = WebDriverWait(driver,20).until(EC.presence_of_element_located((By.ID,'number')))
element12.click()
element12.send_keys('1111222233334444')
还尝试过driver.switchTo()。defaultContent()并再次切换回iFrame,但是存在相同的错误
element13 = WebDriverWait(driver,20).until(EC.presence_of_element_located((By.ID,'expiry')))
element13.click()
element13.send_keys('1220')
这是我遇到element13的错误。
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element is not clickable at point (489, -1)
答案 0 :(得分:0)
发现了问题-元素位于单独的iFrame中。修改了我的代码,以使用xpath和不同ID字段的部分匹配来检索iFrame