我一直在尝试使用selenium登录网站。我有以下问题>我设法打开一个iframe(在我点击登录按钮后它正确显示)但我一直无法进入它。我一直试图通过它的Id和名字找到它,但我不知何故找不到它......
该行看起来像:
driver.switch_to.frame(driver.find_element_by_id("frameid"))
我收到错误“没有这样的元素”。我检查了1000次id,这是正确的!我要切换到的帧不在另一帧内。
有什么建议吗?
答案 0 :(得分:0)
似乎id以某种方式动态分配但始终以相同的字符开头。我显然无法使用基于正则表达式的搜索
在这种情况下,您可以使用XPath和starts-with()
功能找到它:
frame = driver.find_element_by_xpath("//iframe[starts-with(@id, 'something')]")
driver.switch_to.frame(frame)
或者,使用CSS "begin with" selector:
frame = driver.find_element_by_css_selector("iframe[id^=something]")
driver.switch_to.frame(frame)