在做自动化的朋友,你们会不会经常遇到同一个页面,有多个相同页面元素,如无id ,namep这些唯一的属性,用常规的办法是没有办法定位到自己需要的元素的。
那么这种情况需要怎么办呢,我来告诉你怎么办,使用selenium find_elements 定位。find_elements 是把页面上所有相同的元素都放到了一个数组里,我们再根据实际的需要去定位某个元素就可以了。
下面我给出两个案例,给大家讲解一下,如何在多种相同元素中,精确定位到我们需要元素。
1、 需求:
打开百度首页,选择上方导航条里的【贴吧】超文本链接。
截图如下:
源代码:
新闻hao123地图视频贴吧学术登录设置
Python脚本实现:
from selenium import webdriver
#打开谷歌浏览器
driver =webdriver.Chrome()
#最大化窗口
driver.maximize_window()
#打开百度首页
driver.get("http://www.baidu.com")
#获取所有类名为mnav超级链接文本数组,并选择第5个元素值点击。
driver.find_elements_by_class_name("mnav")[4].click()
2、 需求:
点击表格末行末列【已复核】按钮
截图如下:
源代码:
产品名称
金额
状态
Apple
4999.00
Lenovo
5999.00
Nokia
1888.00
Python 脚本实现
from selenium import webdriver
#打开谷歌浏览器
driver = webdriver.Chrome()
#最大化窗口
driver.maximize_window()
#打开网址
driver.get("d:\\yuangbao\\bao1\\test.html")
#点击数组最后一个元素
driver.find_elements_by_xpath("//input[@type='button']")[-1].click()
领取专属 10元无门槛券
私享最新 技术干货