#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@author: 古风尘
@contact: https://blog.youkuaiyun.com/gufenchen
@others: All by GuFengChen, All rights reserved-- Created on 2019/5/12
@desc:
"""
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
# noinspection PyUnresolvedReferences
from TestWeb.confg_new.cfg import chrome_drvier_path
class MyTest():
# This is my test case
#初始化浏览器
def __init__(self,browers="Chrome"):
if browers=="Chrome":
self.driver=webdriver.Chrome(chrome_drvier_path)
elif browers=="edge":
self.driver=webdriver.Edge()
elif browers=="fireFox":
self.driver=webdriver.Firefox()
else:
print("浏览器错误,请确认")
#raise
self.driver= self.driver
#打开对应的url
def openUrl(self,url):
self.driver.get(url)
#最大化浏览器窗口
def maxWindow(self):
self.driver.maximize_window()
#通过不同方式查找界面元素
def findElement(self,by,value):
if(by=="id"):
element=self.driver.find_element_by_id(value)
return element
elif(by=="name"):
element=self.driver.find_element_by_name(value)
return element
elif(by=="xpath"):
element=self.driver.find_element_by_xpath(value)
return element
elif(by=="classname"):
element=self.driver.find_element_by_class_name(value)
return element
elif(by=="css"):
element=self.driver.find_element_by_css_selector(value)
return element
elif(by=="link_text"):
element=self.driver.find_element_by_link_text(value)
return element
else:
print("无对应方法,请检查")
return None
#给指定元素发送值
def sendKeys(self,by,value,keys):
element=self.findElement(by,value)
element.send_keys(keys)
#点击页面元素
def clickElement(self,by,value):
element=self.findElement(by,value)
element.click()
#鼠标悬停
def hover(self,by,value):
element=self.findElement(by,value)
ActionChains(self.driver).move_to_element(element).perform()
#获取页面标题
def getTitle(self):
return self.driver.title
#退出浏览器
def quit(self):
self.driver.quit()
#设置窗口的隐式等待时间
def implicitlyWait(self, param):
self.driver.implicitly_wait(param)
#设置窗口的大小
def set_Window_Size(self, param, param1):
self.driver.set_window_size(param, param1)
#获取当前窗口的句柄
def get_Current_handle(self):
return self.driver.current_window_handle
#获取所有的句柄
def get_Handles(self):
return self.driver.window_handles
#切换到指定窗口
def switch_To_Window(self,param):
handles=self.get_Handles()
self.driver.switch_to_window(handles[param])
print(handles[param])
#回到原先的窗口
def switch_To_Eefore(self,nowhandle):
self.driver.switch_to_window(nowhandle)
#切换到frame框架
def switch_To_Frame(self,param):
self.driver.switch_to_frame(param)
#定位到鼠标移动到上面的元素
def action_Chain_Move(self,by,param):
above=self.findElement(by,param)
ActionChains(self.driver).move_to_element(above).perform()
#定位到鼠标按下左键的元素
def action_Chain_Left(self,by,param):
left=self.findElement(by,param)
ActionChains(self.driver).click_and_hold(left).perform()
#定位到鼠标要右击的元素
def action_Chain_Right(self,by,param):
right=self.findElement(by,param)
ActionChains(self.driver).context_click(right).perform()
#滑动快的定位
def action_Chain_Drag_and_Drop(self,id1,param1,id2,param2):
element=self.findElement(id1,param1) #定位元素的原始位置
target=self.findElement(id2,param2) #定位元素要移动到的目标位置
ActionChains(self.driver).drag_and_drop(element,target).perform()
#窗口截图
def get_Screenshoot_As_File(self,imgpath):
self.driver.get_screenshot_as_file(imgpath)
#获取页面元素信息
def getText(self,by,value):
element=self.findElement(by,value)
return element.text
#获取页面源码
def get_Page_Source(self,param):
return self.driver.page_source.__contains__(param)