Selenium WebDriver无法在iFram中找到某些元素

2024-06-16 11:12:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在Shopify checkout页面上运行测试脚本,虽然我能够切换到iFrame并获取Card Number元素,但同样的方法似乎不适用于其他输入元素(id='expiry',id='name'等)

Form screenshotInspect 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')

这是我得到的元素13的错误

    selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element is not clickable at point (489, -1)

Tags: toid元素bydriverelementuntilclick
1条回答
网友
1楼 · 发布于 2024-06-16 11:12:49

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

相关问题 更多 >