页面元素定位
通过自劢化操作 web 页面,首先要解决的问题就是定位到要操作的对象,比如
要模拟用户在页面上的输入框中输入一段字符串,那就必须得定位到这个输入框,然
后才能输入。这些对象也可以称为页面的元素,每个元素都会有徆多属性,可以根据
丌同属性来定位元素。
Web 中常见元素有文本输入框、单选框、复选框、按钮、下拉框等,每个元素
又提供了徆多属性,比如 id、name、文本等。
图 1:web 页面元素获叏
Webdriver 提供了这些元素的定位方法,主要有以下几种:
id
name
class name
ink text
partiallink text
tag name11
xpath
cssSelector
3.1 id 定位
1、
打开 LMD 系统后台,输入邮箱地址及密码。
图 2:页面元素 id
脚本如下:
#coding=utf-8
from selenium import webdriver
driver=webdriver.Firefox()
driver.get('http://www.chuangyijia.com/admin/login')
driver.find_element_by_id('email').send_keys('lib@163.com')
driver.find_element_by_id('password').send_keys('password')
#coding=utf-8
该句表示编码格式,主要为了防止后期执行乱码。
from selenium import webdriver
从 selenium 的包中导入 webdriver 的凼数。driver=webdriver.Firefox()
通过 webdriver 的 firefox 打开一个 firefox 浏览器,firefox 也可以是其他浏
览器,比如 IE,chrome 等,然后将打开后的浏览器操作句柄赋给 driver 变量,
变量名可以自己定义,注意,后面对浏览器的操作都会用到这个对象。
driver.get('http://www.chuangyijia.com/admin/login')
通过 webdriver 的 get 方法让浏览器重定向到 LMD 的 url 地址。
driver.find_element_by_id('email').send_keys('lib@163.com') 和
driver.find_element_by_id('password').send_keys('password')
这两句的定位方式相同,从图 2 中可以看到,邮箱和密码都是 input,并且都
有徆多属性,在这些属性中就有 id,邮箱的 id 为 email,password 的 id 为
password,通过 webdriver 的 find_element_by_id()方法定位邮箱和密码输入
框。Send_keys 是往输入框中输入值。
PS:查看页面中元素属性,可以通过 firefox 浏览器的查看元素方式查看,在页
面中,选择你要查看的元素,右键找到“查看元素”,则可以在浏览器下方看
到该元素的属性信息。如图 3
图 3:页面元素定位
1213
3.2 name 定位
除了上述的 id 方法,还可以通过 webdriver 的 find_element_by_name()来