Selenium_博客已迁移Web自动化测试Selenium的自学之路

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_)
百度顶部菜单及源码.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()

欢迎关注公众号:我要学测试


扫码有惊喜.jpg
上一篇下一篇

猜你喜欢

热点阅读