#coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
class webutils():
def __init__(self, browser='firefox'):
'''
:param browser: 浏览器对象
:return:
'''
if browser == "firefox" :
driver = webdriver.Firefox()
elif browser == "chrome":
driver = webdriver.Chrome()
elif browser == "ie" :
DesiredCapabilities.INTERNETEXPLORER['ignoreProtectedModeSettings'] = True
driver = webdriver.Ie("../resources/drivers/IEDriverServer.exe")
elif browser == "phantomjs":
driver = webdriver.PhantomJS()
try:
self.driver = driver
except Exception:
raise NameError("Not found this browser,You can enter 'firefox', 'chrome', 'ie' or 'phantomjs'.")
def getElement(self,by,value):
'''
:param by: 查找元素的方式
:param value: 文本值
:return: 查找到的元素
'''
if by=="id":
return self.driver.find_element_by_id(value)
elif by=="class":
return self.driver.find_element_by_class_name(value)
elif by=="name":
return self.driver.find_element_by_name(value)
elif by=="css":
return self.driver.find_element_by_css_selector(value)
elif by=="linktext":
return self.driver.find_element_by_link_text(value)
elif by=="partcialtext":
return self.driver.find_element_by_partial_link_text(value)
elif by=="tag":
return self.driver.find_element_by_tag_name(value)
elif by=='xpath':
return self.driver.find_element_by_xpath(value)
elif by=='js'or by=="jquery":
return self.ExcuteJs(value)
else:
print "请输入适合的查找元素方式。。。"
def ExcuteJs(self,js):
'''
:param js: js查找元素方式,或jQuery
:return: 找到元素
'''
self.driver.execute_script(js)
def SetTextBox(self,text,by,value):
'''
:param text: 设置文本框的值
:param by: 查找元素的方式
:param value: 文本值
:return:
'''
elemet=getElement(by,value)
self.driver.execute_script("arguments[0].innerHTML = \"" + text + "\"",elment)
def getTextBox(self,by,value):
'''
:param by: 查找元素的方式
:param value: 文本值
:return: 返回富文本框的值
'''
elment=getElement(by,value)
return self.driver.execute_script("arguments[0].innerHTML()",elment)
def InputByJs(self,by,value):
'''
:param by: 查找元素的方式
:param value: 文本值
:return:
'''
elment=getElement(by,value)
self.driver.execute_script("arguments[0].value=\""+values+"\"",elment)
def scrollToElement(self,by,value):
'''
:param by: 查找元素的方式
:param value: 文本值
:return:
'''
elment=getElement(by,value)
self.driver.execute_script("arguments[0].scrollIntoViewIfNeeded(true);",elment)
def SwitchWindow_Two(self):
'''
适用于两个窗口的切换
:return:
'''
CurrentHandle=self.driver.current_window_handle
handles=self.driver.window_handles
for handle in handles:
if handle==CurrentHandle:
continue
else:
self.driver._switch_to.window(handle)
def SwitchWindow_By_Tltle(self,Title):
'''
:param Title: 浏览器窗口标题
:return:
'''
flag=False
CurrentHandle=self.driver.current_window_handle
handles=self.driver.window_handles
for handle in handles:
if handle==CurrentHandle:
continue
else: