#coding:utf-8
import os
import time
from selenium import webdriver
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support.ui import Select
def forward(self):
self.driver.forward()
def back(self):
self.driver.back()
def closeBrowser(self):
self.driver.quit()
def get_img(self):
file_path = os.path.dirname(os.path.abspath('.')) + '/image/'
rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))
screen_name = file_path + rq + '.png'
try:
self.driver.get_screenshot_as_file(screen_name)
except NameError as e:
self.get_windows_img()
def switch_handel(self):
all_handles = self.driver.window_handles
for handle in all_handles:
self.driver.switch_to.window(handle)
def openBrowser(self,type,url):
if type == 'Firefox':
self.driver = webdriver.Firefox()
self.driver.maximize_window()
self.driver.implicitly_wait(20)
self.driver.get(url)
elif type == 'Chrome':
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(20)
self.driver.get(url)
elif type == 'IE':
self.driver = webdriver.Ie()
self.driver.maximize_window()
self.driver.implicitly_wait(20)
self.driver.get(url)
elif self.browser_type == '':
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(20)
self.driver.get(url)
def input(self, type, loc, value):
if type == "xpath":
self.driver.find_element_by_xpath(loc).send_keys(value)
elif type == "class_name":
self.driver.find_element_by_class_name(loc).send_keys(value)
elif type == "id":
self.driver.find_element_by_id(loc).send_keys(value)
elif type == "name":
self.driver.find_element_by_name(loc).send_keys(value)
elif type == "link_text":
self.driver.find_element_by_link_text(loc).send_keys(value)
elif type == "partial_link_text":
self.driver.find_element_by_partial_link_text(loc).send_keys(value)
def click(self, type, loc):
if type == "xpath":
self.driver.find_element_by_xpath(loc).click()
elif type == "class_name":
self.driver.find_element_by_class_name(loc).click()
elif type == "id":
self.driver.find_element_by_id(loc).click()
elif type == "name":
self.driver.find_element_by_name(loc).click()
elif type == "link_text":
self.driver.find_element_by_link_text(loc).click()
elif type == "partial_link_text":
self.driver.find_element_by_partial_link_text(loc).click()
def clear(self, type, loc):
if type == "xpath":
self.driver.find_element_by_xpath(loc).clear()
elif type == "id":
self.driver.find_element_by_id(loc).clear()
elif type == "name":
self.driver.find_element_by_name(loc).clear()
elif type == "link_text":
self.driver.find_element_by_link_text(loc).clear()
elif type == "partial_link_text":
self.driver.find_element_by_partial_link_text(loc).clear()
def get_element(self, type, loc):
if type == "xpath":
self.driver.find_element_by_xpath(loc)
elif type == "id":
self.driver.find_element_by_id(loc)
elif type == "name":
self.driver.find_element_by_name(loc)
elif type == "link_text":
self.driver.find_element_by_link_text(loc)
elif type == "partial_link_text":
self.driver.find_element_by_partial_link_text(loc)
elif type == "classname":
self.driver.find_element_by_class_name(loc)
elif type == "css":
self.driver.find_element_by_css_selector(loc)
def get_text(self, type, loc):
if type == "xpath":
text = self.driver.find_element_by_xpath(loc).text
return text
elif type == "name":
text = self.driver.find_element_by_name(loc).text
return text
elif type == "link_text":
text = self.driver.find_element_by_link_text(loc).text
return text
elif type == "class_name":
text = self.driver.find_element_by_class_name(loc).text
return text
elif type == "id":
text = self.driver.find_element_by_id(loc).text
return text
def move_to_elemen_and_click(self, type, loc):
if type == "xpath":
xm = self.driver.find_element_by_xpath(loc)
webdriver.ActionChains(self.driver).click(xm).perform()
elif type == "id":
xm = self.driver.find_element_by_id(loc)
webdriver.ActionChains(self.driver).click(xm).perform()
elif type == "name":
xm = self.driver.find_element_by_name(loc)
webdriver.ActionChains(self.driver).click(xm).perform()
elif type == "link_text":
xm = self.driver.find_element_by_link_text(loc)
webdriver.ActionChains(self.driver).click(xm).perform()
def switch_in_iframe(self,iframe):
self.driver.switch_to_frame(iframe)
def switch_out_iframe(self):
self.driver.switch_to_default_content()
def element_is_visibility(self,timeout,loc):
result = WebDriverWait(self,timeout).until(expected_conditions.visibility_of_element_located(loc))
return result
def page_slide(self,value):
js = "var q=document.documentElement.scrollTop=" + bytes(value) + ""
self.driver.execute_script(js)
def kill_driver(self, driver_name):
if driver_name[-4:].lower() != ".exe":
driver_name += ".exe"
os.system("taskkill /f /im " + driver_name)
def select_by_value(self,type,loc,value):
if type == 'xpath':
element = self.driver.find_element_by_xpath(loc)
Select(element).select_by_value(value)
elif type == 'id':
element = self.driver.find_element_by_id(loc)
Select(element).select_by_value(value)
elif type == 'name':
element = self.driver.find_element_by_name(loc)
Select(element).select_by_value(value)
elif type == 'css':
element = self.driver.find_element_by_css_selector(loc)
Select(element).select_by_value(value)