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

一.浏览器操作

1.  back()与 forward()

#coding=gbk  //编码不一定是utf-8 
from selenium import webdriver         //导入包,也叫”模组“

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的进行间接定位):

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()

  执行结果如下:

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():   (在设置事件内智能等待)



原文地址:https://www.cnblogs.com/alwayswyy/p/5013799.html