selenium+python(扩展1.1)
上一篇 /
下一篇 2016-09-21 17:02:27
/ 个人分类:selenium+python
接上一段扩展,上一段写到未完成,是因为我想得太多了,突然想到了定位对象,但是,定位对象也不是我想象中的那么简单,比如下面这段实例:
#-*- coding: utf-8 -*-#
fromseleniumimportwebdriver
fromselenium.webdriver.commonimportby
importtime
importsys
fromselenium.webdriver.commonimportaction_chains, keys
browser = webdriver.Chrome()
url ="http://mxj.club/#/login"
print"now access %s"%(url)
browser.get(url)
time.sleep(5)
#browser.find_element_by_css_selector("a[translate =\"login.loginByForm\"]").click()
whileTrue:
try:
elements = browser.find_elements(by.By.XPATH,'//a[@ng-click="loginByForm()"]')
break_out =False
ifelementsis notNoneandlen(elements) >0:
foreinelements:
ife.textis notNone:
iflen(e.text) >0:
e.click()
break
ifbreak_out:
break
except:
print"Unexpected error:", sys.exc_info()[0]
pass
browser.find_element_by_id("username").send_keys("system")
browser.find_element_by_id("password").send_keys("zcsysadmin01")
browser.find_element_by_name("submit").click()
time.sleep(5)
browser.quit()
上面的链接中有两个登陆方式,一个是微信扫码登陆,一个是用户名密码登陆,
扫码登陆实际在自动化测试中是不需要测试的,那么我们就需要直接切换到用户名密码
登陆,那么就需要切换,但是使用selenium自带的函数库并不能解决我们所我们却换
的需求,(如果有时间可以看看上面提供的页面,用检测方法看看里面的对象)自带的
函数库不能满足,只能自己去写。好吧!!
whileTrue:
try:
elements = browser.find_elements(by.By.XPATH,'//a[@ng-click="loginByForm()"]')
break_out =False
ifelementsis notNoneandlen(elements) >0:
foreinelements:
ife.textis notNone:
iflen(e.text) >0:
e.click()
break
ifbreak_out:
break
except:
print"Unexpected error:", sys.exc_info()[0]
pass
这么大一段就为了找一个对象而已。。。。
通过上面的方法找到对象以后,把这个做一个包吧,以后就可以方便的调用了。。。
收藏
举报
TAG:
Python
python