Python+Selenium之元素定位ID
2018-01-19 本文已影响72人
路由心定
元素定位方式很多,我们一个个来看!
定位方式1:ID定位(语法:find_element_by_id())
源码
def find_element_by_id(self, id_):
"""Finds an element by id.
:Args:
- id\_ - The id of the element to be found.
:Usage:
driver.find_element_by_id('foo')
"""
return self.find_element(by=By.ID, value=id_)
分析
通过上边的源码:我们可以看到样例用法,以百度为例:
#coding=utf-8
from selenium import webdriver
from time import sleep
'''
操作步骤如下:
1.打开火狐浏览器
2.最大化窗口
3.输入网址并打开
4.强制睡眠2S
5.定位输入框并输入'路由心定'
6.看下结果
'''
driver=webdriver.Firefox()
driver.maximize_window()
driver.get('http://www.baidu.com')
sleep(2)
driver.find_element_by_id('kw').send_keys(u'路由心定')
需要注意的地方
:
当我们选的时候可能看到了find_elements_by_id这个函数,elements是复数的,具体怎么用呢?先看下源码:
def find_elements_by_id(self, id_):
"""
Finds multiple elements by id.
:Args:
- id\_ - The id of the elements to be found.
:Usage:
driver.find_elements_by_id('foo')
"""
return self.find_elements(by=By.ID, value=id_)
![](https://img.haomeiwen.com/i1916265/2e7586d49dca917c.png)
这个方法是返回一组元素,由于id相同的网站不好找,咱们以css为例,其用法与id一样:
#coding=utf-8
from selenium import webdriver
from time import sleep
'''
操作步骤如下:
1.打开火狐浏览器
2.最大化窗口
3.输入网址并打开
4.强制睡眠2S
5.查找class='mnav'的一组元素
6.打印组元素长度并且循环遍历打印
7.点击'新闻'功能菜单
'''
driver=webdriver.Firefox()
driver.maximize_window()
driver.get('http://www.baidu.com')
sleep(2)
list=driver.find_elements_by_class_name('mnav')
print len(list)
for element in list:
print element.text
list[0].click()
欢迎关注公众号:我要学测试
![](https://img.haomeiwen.com/i1916265/daedc6544fa4156d.jpg)