python自动化测试登录_Selenium+Python自动化测试:登录

# -*-coding:utf-8-*-

# _author_ = "janehost"

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

import sys

reload(sys)

sys.setdefaultencoding('utf8')

class Page(object):

'''

页面基础类,用于所有页面的继承

'''

base_url = "http://192.168.10.6/login"

def __init__(self, selenium_driver, base_url=base_url, parent=None):

self.base_url = base_url

self.driver = selenium_driver

self.timeout = 30

self.parent = parent

def _open(self, url):

url = self.base_url + url

self.driver.get(url)

assert self.on_page(), 'Did not land on %s' % url

def open(self):

self._open(self.url)

def on_page(self):

#return (self.driver.current_url).encode('utf-8') == (self.base_url + self.url)

return self.driver.current_url.encode('utf-8') == (self.base_url + self.url)

def find_element(self, *loc):

# return self.driver.find_element(*loc)

try:

# 确保所有元素是可见的

# 注意:以下入参为元组的元素,需要加*。python存在这种特性,就是将入参放在元组里。

#WebDriverWait(self.driver,10).until(lambda driver: driver.find_element(*loc).is_displayed())

# 注意:以下入参本身是元组,不需要加*

WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(loc))

return self.driver.find_element(*loc)

except:

print u"%s 页面中未能找到 %s 元素"%(self, loc)

def find_elements(self, *loc):

return self.driver.find_elements(*loc)

def script(self, src):

return self.driver.execute_script(src)

def swtich_frame(self, loc):

return self.driver.swith_to_frame(loc)

def send_keys(self, loc, value, clear_first=True, click_first=True):

try:

# getattr相当于self.loc

loc = getattr(self, "_%s" % loc)

if click_first:

self.find_element(*loc).click()

if clear_first:

self.find_element(*loc).clear()

self.find_element(*loc).send_keys(value)

except ArithmeticError:

print u"%s 页面中未能找到 %s 元素" % (self, loc)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值