已解决Selenium无法定位到iframe的动态ID

Posted quhao0994

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已解决Selenium无法定位到iframe的动态ID相关的知识,希望对你有一定的参考价值。

报错:selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

表现:无法定位到输入框

状态:已解决

备注:ch5_3.py 163邮箱登录页

参考:https://www.jianshu.com/p/5af3974c40c7   Selenium定位iframe动态ID

 

 

按照参考博客的方法,我将原本写的这个语句是用来定位非动态的iframe

1 driver.switch_to.frame(x-URS-iframe) 

但实际上我测试的页面使用的是动态ID,可以看到x-URS-iframe后面跟着的这一串数字

技术图片

因此需要把上面那行代码改成如下形式,用xpath定位属性值。

driver.switch_to.frame(driver.find_element_by_xpath("//iframe[starts-with(@id, ‘x-URS-iframe‘)]"))

 

xpath有三种方法定位动态ID,具体可见引用的原博客链接。感谢作者提供的方法。

以上是关于已解决Selenium无法定位到iframe的动态ID的主要内容,如果未能解决你的问题,请参考以下文章

selenium无法定位元素问题

Selenium基本使用表单切换

py+selenium 无法定位ShowModalDialog模态窗口已解决

八年测试经验,吐血整理出Selenium无法定位元素的几种解决方案

selenium定位方法-iframe元素定位方法

Mayi_Selenium登录126邮箱,定位不到账号输入框解决办法