关闭

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

1394人阅读 评论(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网站的观点或立场
    个人资料
    • 访问:495899次
    • 积分:5647
    • 等级:
    • 排名:第4604名
    • 原创:155篇
    • 转载:39篇
    • 译文:2篇
    • 评论:22条
    联系方式
    最新评论