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

 

评分:0

我来说两句

我的栏目

日历

« 2024-05-03  
   1234
567891011
12131415161718
19202122232425
262728293031 

我的存档

数据统计

  • 访问量: 24630
  • 日志数: 5
  • 建立时间: 2016-09-18
  • 更新时间: 2016-09-21

RSS订阅

Open Toolbar