目录
1.selenium的定位方法
2.操作案例
3.实现代码
前面我们介绍了html页面元素主要是通过标签和属性来进行定位 ,只要满足唯一,无论是标签还是属性 ,都能进行定位 。当然 ,我们要通过selenium来进行定位 ,同样还是使用标签和属性 。
1.selenium的定位方法
下面我们就来看下selenium提供的16种定位方法 。本文主要介绍id、name、class_name、link_text等方法的使用 ,向xpath和css放在后面的系列中介绍
以上的方法的意思是,我要使用什么的元素定位 。 是使用标签定位呢 ?还是使用属性定位 。selenium都给你提供了对应的方法。
比如 :
使用input标签定位 ,就可以使用find_element_by_tag_name('input') ,其中方法中传入的值就必须是标签的名字 ;
若使用id属性定位,就可以使用使用find_element_by_id(属性值) ,其中方法中传入的值必须id的属性值 。
同理,其它方法也都是如此 ,而这两个方法系列都有不同的使用场景 。
-
find_element系列的方法,它定位后返回的是一个元素对象 ,即它能代表唯一性 ,所以大多数也会使用这里面的方法。
-
find_elements系列的方法,它定位后返回的是多个元素对象 ,这些对象放在一个列表 ,所以你的通过索引获取我们要用那个 ,一般只有在定位不到时才会使用这个系列的方法 。
2.操作案例
需求:通过selenium完成对tpshop的登录操作,具体如下 :
-
使用link_text定位首页登录按钮 ,
-
使用id定位用户名输入框,并输入账号,如13112345678
-
使用id定位确认密码输入框,并输入123456 。
-
使用name定位验证码输入框,并输入8888
-
使用class_name定位登录按钮,并点击确定 。
找到每个页面对象的定位元素后 ,我们就可以写代码了 。下面我们使用python编写一段代码 。
3.实现代码
# 定位登录
from selenium import webdriver # 导入webdriver
from time import sleep
# 1. 创建浏览器对象
driver = webdriver.Chrome()
driver.maximize_window() # 浏览器最大化
# 2. 输入地址
driver.get("http://localhost")
# 3. 元素定位
# 3.1 点击登录 : link_text定位
driver.find_element_by_link_text("登录").click()
sleep(3)
# 3.2 输入用户名 :id定位
driver.find_element_by_id("username").send_keys("13088888888")
# 3.3 输入密码 :id定位
driver.find_element_by_id("password").send_keys("123456")
# 3.4 输入验证码 :name定位
driver.find_element_by_name("verify_code").send_keys("8888")
# 4. 点击登录 :class定位
driver.find_element_by_class_name("J-login-submit").click()
sleep(6)
driver.quit() # 退出浏览器