python编写简单浏览器_python实例编写(1)--浏览器操作,元素操作

本文介绍了使用Selenium进行自动化测试的基本操作,包括浏览器的back()、forward()、maximize_window()和set_window_size()方法,以及元素的定位和属性获取。通过示例展示了如何登录163邮箱并验证登录是否成功,同时讲解了等待时间的设置。文章还提到了错误处理中可能出现的问题及其原因。
摘要由CSDN通过智能技术生成

一.浏览器操作

1. back()与 forward()

#coding=gbk //编码不一定是utf-8

from selenium importwebdriver //导入包,也叫”模组“

driver=webdriver.Firefox() //同selenium一致,默认内嵌FF,其他浏览器需导入驱动

/** 其他浏览器需要将驱动exe放到python安装包下

driver=webdriver.Ie()

driver=webdriver.Chrome() **/

#访问百度

no1_url="http://www.baidu.com"

print "跳到百度:%s"%(no1_url)

driver.get(no1_url)#访问百度新闻

no2_url="http://news.baidu.com"

print "跳到百度新闻:%s"%(no2_url)

driver.get(no2_url)#返回到百度

print "跳到百度"driver.back()#前进到百度新闻

print"跳到新闻"driver.forward()

driver.quit()

2.maximize_window() 最大化窗口

#coding=utf-8

from selenium import webdriver

driver=webdriver.Firefox()

driver.get("http://www.baidu.com")

print "浏览器最大化"

driver.maximize_window() #将浏览器最大化

driver.quit()

3. set_window_size()设置浏览器大小

#coding=utf-8

from selenium import webdriver

driver=webdriver.Firefox()

driver.get("https://qy.weixin.qq.com/cgi-bin/home?lang=zh_CN&token=715149260#contacts")

print "设置浏览器为移动端大小"

driver.set_window_size(480,800) #设置浏览器为移动端大小

driver.quit()

二.元素操作

1.简单对象的定位

find_element_by_id()

find_element_by_name()

find_element_by_classname()

find_element_by_tag_name()

find_element_by_link_text()

find_element_by_partial_link_text()

find_element_by_xpath()

find_element_by_css_selector()

特别是xpath使用相对路径定位(使用相邻的有id的进行间接定位):

771541-20151202171113096-776280518.png

2.登录实例 login.py (获取元素属性)

#coding=gbk

from selenium import webdriver

#登录163邮箱

driver=webdriver.Firefox()

driver.get("http://mail.163.com/")

driver.find_element_by_id("idInput").clear()

driver.find_element_by_id("idInput").send_keys("wyybingo")

driver.find_element_by_id("pwdInput").clear()

driver.find_element_by_id("pwdInput").send_keys("********")

print driver.find_element_by_id("idInput").size //获取尺寸

print driver.find_element_by_id("pwdInput").text //获取文本

print driver.find_element_by_id("pwdInput").get_attribute("class") //获取属性值

print driver.find_element_by_id("remAutoLoginTxt").is_displayed() //元素是否可见

#type类型为submit,可以替代click, submit强调对整个信息的提交,点击强调对单个事件的独立性

driver.find_element_by_id("loginBtn").submit()

driver.quit()

执行结果如下:

771541-20151202172227189-844363023.jpg

3.验证(打印信息判断用例是否成功),通常通过 url,title和标识性信息

#coding=utf-8

from selenium import webdriver

#登录163邮箱

driver=webdriver.Firefox()

driver.get("http://mail.163.com/")

driver.find_element_by_id("idInput").clear()

driver.find_element_by_id("idInput").send_keys("wyybingo")

driver.find_element_by_id("pwdInput").clear()

driver.find_element_by_id("pwdInput").send_keys("*****")

#type类型为submit,可以替代click

driver.find_element_by_id("loginBtn").submit()

print driver.get_current_url //打印路径

print driver.title //打印标题

print driver.find_element_by_id("spnUid").text //打印标头

driver.quit()

结果如下:

>>> ================================ RESTART ================================

>>>

http://mail.163.com/js6/main.jsp?sid=ZDlqYvPPnHvHRTURunPPpYpWbwaaZWHT&df=mail163_letter#module=welcome.WelcomeModule%7C%7B%7D

网易邮箱6.0版

wyybingo@163.com

>>>

这里特别注意:这里的方法都不带()。。。。

错误描述:

Python错误:TypeError: 'str' object is not callable

原因分析:

当一般内部函数被用作变量名后可能出现此错误。。

4.等待时间设置

sleep():time包中(必须休眠这么久)

import time time.sleep()

或 from time import sleep sleep()

implicitly_wait(): (在设置事件内智能等待)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值