Selenium WebDriver-无法在iFrame中定位某些元素

时间:2019-10-09 02:12:08

标签: python

我正在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)

1 个答案:

答案 0 :(得分:0)

发现了问题-元素位于单独的iFrame中。修改了我的代码,以使用xpath和不同ID字段的部分匹配来检索iFrame