关闭

【Selenium学习笔记】webdriver如何定位一组对象

1656人阅读 评论(0) 收藏 举报
分类:

定位一组对象方法是:

  • driver.find_elements_by_name()
  • driver.find_elements_by_id()
  • driver.find_elements_by_class_name()
  • driver.find_elements_by_tag_name()
  • driver.find_elements_by_link_text()
  • driver.find_elements_by_partial_link_text()
  • driver.find_elements_by_xpath()
  • driver.find_elements_by_css_selector()
定位一组对象一般用于批量操作对象,比如将页面上所有的checkbox 都勾上、所有的文本框都填写上同样的内容等。


 比如:获取百度首页——设置——高级搜索,页面上所有的单选按钮:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Firefox()
driver.get('http://ww.baidu.com')
driver.maximize_window()

setting = driver.find_element_by_link_text(u'设置')
ActionChains(driver).move_to_element(setting).perform()
driver.find_element_by_link_text(u'高级搜索').click()

inputs = driver.find_elements_by_xpath("//input[@type='radio']")
返回一个list存在inputs里。

比如,获取百度首页——设置——高级搜索,页面上所有的文本框,并输入selenium:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Firefox()
driver.get('http://ww.baidu.com')
driver.maximize_window()

setting = driver.find_element_by_link_text(u'设置')
ActionChains(driver).move_to_element(setting).perform()
driver.find_element_by_link_text(u'高级搜索').click()

inputs = driver.find_elements_by_xpath("//input[@class='c-input']")
for t in inputs:
    t.send_keys('selenium')
time.sleep(5)
driver.find_elements_by_xpath("//input[@class='c-input']").pop().clear()
最后一行是,将最后一个文本框清空。pop 也为python 语言中提供的方法,用于删除指定们位置的元素,pop()为空默认选择最一个元素。要想清空第2个文本框,则使用pop(1),清空第一个文本框使用pop(0)。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:626110次
    • 积分:6423
    • 等级:
    • 排名:第3991名
    • 原创:155篇
    • 转载:39篇
    • 译文:2篇
    • 评论:26条
    联系方式
    2010-2013,就职中科大洋,视音频编解码底层测试;
    2013-2015,就职爱迪德,视音频加密系统测试;
    2015-2016,就职猎豹移动,新闻推荐系统服务器端测试;
    2016-至今,就职蔚来汽车,车联网系统测试

    有对自动化测试、持续集成感兴趣的朋友,可以和我交流。
    独立博客:http://liuchunming033.github.io
    最新评论