from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class Pyse():
def __init__(self,b ='chrome'):
if b == 'chrome':
self.driver = webdriver.Chrome()
elif b == 'ff':
self.driver = webdriver.Firefox()
else:
print('传递参数有误')
def open(self, url):
self.driver.get(url)
def wait_element(self, css, timeout=10, poll=0.5):
by = css.split('=>')[0]
value = css.split('=>')[1]
if by == By.ID:
WebDriverWait(self.driver, timeout, poll).until(EC.presence_of_element_located((By.ID, value)))
elif by == By.CSS_SELECTOR:
WebDriverWait(self.driver, timeout, poll).until(EC.presence_of_element_located((By.CSS_SELECTOR, value)))
else:
print('参数错误')
def get_element(self, css):
'''
:param css: id=>i1
:return:
'''
by = css.split('=>')[0]
value = css.split('=>')[1]
if by == By.ID:
element = self.driver.find_element_by_id(value)
elif by == By.CLASS_NAME:
element = self.driver.find_element_by_class_name(value)
elif by == By.CSS_SELECTOR:
element = self.driver.find_element_by_css_selector(value)
elif by == By.LINK_TEXT:
element = self.driver.find_element_by_link_text(value)
else:
print('传递参数异常')
return element
def type(self, css, value):
element = self.get_element(css)
element.send_keys(value)
if __name__ == '__main__':
pyse = Pyse()
pyse.open('https://www.baidu.com/')
pyse.type('id=>i1', 123123)