Selenium-Webdriver(python)学习笔记(三)
----定位元素,操作元素
1.定位元素
定位元素有多种方法,如下:
* id HTML标签的id属性
* name HTML标签的name属性
* class_name HTML标签的class属性
* css_selector 元素使用到的css选择器
* link_text 链接的显示文本
* partial_link_name 链接显示文本的一部分
* tag_name 标签名
* xpath (相关教程: w3cschool)
具体代码如下:
import os
from time import sleep
from distutils import log
from selenium import webdriver
dr = webdriver.Firefox()
dr.get('file:///%s' % (os.path.abspath('SignIn.html')) )
# 通过id定位到用户名输入框
username = dr.find_element_by_id('login_field')
# 输出用户名输入框的值
log.warn(username.get_attribute('value'))
# 通过name定位到密码输入框
pwd = dr.find_element_by_name('password')
# 输出密码输入框的值
log.warn(pwd.get_attribute('value'))
# 通过class_name定位到SignIn按钮
signIn = dr.find_element_by_class_name('button')
# 输出SignIn按钮的值
log.warn(signIn.get_attribute('value'))
# 通过css_selector定位到用户名输入框
username_by_css = dr.find_element_by_css_selector("input[type='text']")
# 输出用户名输入框的值
log.warn(username_by_css.get_attribute('value'))
# 通过link_text定位到forgot..链接
forgot = dr.find_element_by_link_text('(forgot password)')
# 输出链接地址
log.warn(forgot.get_attribute('href'))
# 通过partial_link_text定位到forgot..链接
forgot_by_p = dr.find_element_by_partial_link_text('forgot')
# 输出链接地址
log.warn(forgot_by_p.get_attribute('href'))
# 通过tag_name定位到大标题
head1 = dr.find_element_by_tag_name('h1')
# 输出标签内文本
log.warn(head1.text)
# 通过xpath定位到用户名的label
username_label= dr.find_element_by_xpath('//*[@id="login"]/form/div[3]/label[1]')
# 输出标签内文本
log.warn(username_label.text)
dr.close()
输出结果:
Defaut User
1a2b3c4d
Sign in
Defaut User
file:///c:/github/webdriver_learning/locate_operate/SignIn.html#
file:///c:/github/webdriver_learning/locate_operate/SignIn.html#
Sign in
Username or Email
2.操作元素
通过find_element_by_*系列方法定位到的元素,有四个基本操作函数(这里指模拟测试行为的操作)
* clear 清空文本框/域的值
* click 点击元素
* send_keys 模拟键盘输入
* submit 提交元素所在表单
代码如下:
operate.py
import os
from time import sleep
from distutils import log
from selenium import webdriver
dr = webdriver.Firefox()
dr.get('file:///%s' % (os.path.abspath('SignIn.html')) )
# 通过id定位到用户名输入框
username = dr.find_element_by_id('login_field')
username.clear()
username.send_keys('change the username')
# 输出用户名输入框的值
log.warn(username.get_attribute('value'))
# 通过name定位到密码输入框
pwd = dr.find_element_by_name('password')
pwd.clear()
pwd.send_keys('change the pwd')
# 输出密码输入框的值
log.warn(pwd.get_attribute('value'))
# 通过class_name定位到SignIn按钮
signIn = dr.find_element_by_class_name('button')
# 试试clear能否清除按钮的值
# signIn.clear() 不行
# 点击SignIn按钮
signIn.click()
log.warn(signIn.get_attribute('value'))
sleep(5)
dr.close()
operate_submit.py
from time import sleep
from distutils import log
from selenium import webdriver
dr = webdriver.Firefox()
dr.get('http://www.google.com.hk')
# 定位搜索文本框
s = dr.find_element_by_id('lst-ib')
s.send_keys('selenium-webdriver')
s.submit()
sleep(3)
log.warn(dr.title)
sleep(3)
dr.close()
输出结果:
operate.py:
change the username
change the pwd
Clicked
operate_submit.py
selenium-webdriver - Google 搜索

浙公网安备 33010602011771号