递归遍历frame
经常用selenium定位元素时,定位方式试过,就是报找不到元素,然后发现元素在另一个frame里面,需要切换,多个frame的话,需要切来切去,十分不方便。这里封装一个方法findElement,可以递归遍历所有frame,一个个去找这个元素,直到找到为止,分享之。
这里的实例用的IEDriverServer.exe,没有的童鞋,需要网上下载,并拷贝到C:\Program Files\Internet Explorer\目录下,目录可以修改,熟悉selenium的可以根据喜好更改。
# -*- coding:utf-8 -*-
from selenium import webdriver
import os
from selenium.webdriver.common.by import By
#IE
IEDriverServer = "C:\Program Files\Internet Explorer\IEDriverServer.exe"
os.environ["webdriver.ie.driver"] = IEDriverServer
driver = webdriver.Ie(IEDriverServer)
def isGetElement(by=By.ID,location='input_text'):
try:
driver.find_element(by,location)
return True
except Exception ,err :
return False
def findElement(by=By.ID,location='in