selenium 2 + python iframe定位

    在定位页面元素的时候,有时会碰到iframe。如果iframe里有id或者name,使用switch_to_frame()可以很方便的定位到。但有时会碰到iframe里没有id或者那么的情况,这就需要其他办法去定位了。

    页面结构:

wKiom1ZVYxTj6IZ-AAH4n9MDuCk426.jpg方法一:从顶层开始定位,相对比较费劲。

text1 = browser.find_element_by_class_name("bodybg")
text2 = text1.find_element_by_xpath("div[@class='Lean_overlay']/div[2]")
text3 = text2.find_element_by_tag_name("iframe").get_attribute("src")
print text3#输入iframe里的src内容,确认已经定位到iframe
text = text2.find_element_by_tag_name("iframe")
browser.switch_to.frame(text)

方法二:定位到上一次,然后再定位到iframe。

#找出所有class_name=qh-login的上一层元素
text1 = browser.find_elements_by_class_name("qh-login")

for text in text1:
   if text.get_attribute("id") == "idname":
       print text.get_attribute("class")
       text2 = text.find_element_by_tag_name("iframe").get_attribute("src")
   else:
       text2 = str("定位失败了")


你可能感兴趣的:(python,iframe,元素)