(十)定位一组元素

虫师 创建于 大约 1 年 之前

最后更新时间 2018-11-03


WebDriver还提供了8种用于定位一组元素的方法。

find_elements_by_id()
find_elements_by_name()
find_elements_by_class_name()
find_elements_by_tag_name()
find_elements_by_link_text()
find_elements_by_partial_link_text()
find_elements_by_xpath()
find_elements_by_css_selector()

定位一组元素的方法与定位单个元素的方法类似,唯一的区别是在单词element后面多了一个s表示复数。

接下来通过例子演示定位一组元素的使用:

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
sleep(1)

# 定位一组元素
texts = driver.find_elements_by_xpath('//div/h3/a')

# 循环遍历出每一条搜索结果的标题
for t in texts:
    print(t.text)

driver.quit()

程序运行结果:

Selenium - Web Browser Automation
官网
功能自动化测试工具——Selenium篇
selenium + python自动化测试环境搭建 - 虫师 - 博客园
selenium是什么?_百度知道
怎样开始用selenium进行自动化测试(个人总结)_百度经验
Selenium_百度百科
selenium_百度翻译
Selenium官网教程_selenium自动化测试实践_Selenium_领测软件测试网
Selenium(浏览器自动化测试框架)_百度百科
自动化基础普及之selenium是啥? - 虫师 - 博客园
python十大主流开源框架 「菜鸟必看」

我要留言

  • 定位了一下测试教程网搜索的一个页面,说一下遇到的问题:刚开始比葫芦画瓢用find_elements_by_xpath定位,定位是没有错,循环也没有问题,但是在打印的时候发生了报错:selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document,在网上查了之后说这个报错有可能有三种原因导致的,我每一种都试过了都不行,后来我想是跟我定位有关吗?把定位的一组数据打印出来也没有问题,循环完打印循环的数据也没有问题,但是就是打印文本报错,然后又试了几种方法还是不行,后来去了一趟卫生间,回来的时候想了一下给一组的每个数据先获取text,再打印呢?会不会好一点,结果就这样好了,driver.get('https://cn.bing.com/search?q=site:www.testclass.net') print(driver.title) driver.refresh() texts=driver.find_elements_by_css_selector('a[target=\"_blank\"]') print(texts) time.sleep(3)

    for t in texts: a=t.text print(a) time.sleep(3) driver.quit()

    哈哈哈学习使我快乐 创建于 2019-07-16 17:31:08

  • 刚有一个发现顺便可以回答【2019-03-17 23:30:00】的评论:

    我刚需要定位一个table,发现用find_element_by_id()是报错的,然后用find_elements_by_id()是可以的。由此可见,table这种元素的定位就是需要用后者来提取,然后存到数组里方便接下来的步骤使用。

    葡葡萄 创建于 2019-07-04 15:19:38

  • 我是初学,我想确定是否真的有find_elements_by_id(),如果有,他存在的意义是什么。。。

    学渣改变世界 创建于 2019-03-17 23:30:00

  • 您好,我想请教下定位一组元素中的//div/h3/a这个xpath对应哪一组元素,谢谢!

    哈哈 创建于 2019-02-13 16:44:47