美文网首页
selenium应用之“定位一组元素”

selenium应用之“定位一组元素”

作者: rr1990 | 来源:发表于2019-03-14 14:42 被阅读0次

一、selenium定位一组元素

  • find_elements_by_id(id_)
    获取一组相同id的元素
  • find_elements_by_name(name)
    获取一组相同name的元素
  • find_elements_by_class_name(name)
    获取一组相同class的元素
  • find_elements_by_link_text(text)
    获取一组相同link_text的元素
  • find_elements_by_partial_link_text(link_text)
    获取一组相同partial_link_text的元素
  • find_elements_by_tag_name(name)
    获取一组相同tag的元素
  • find_elements_by_xpath(xpath)
    获取一组相同xpath的元素
  • find_elements_by_css_selector(css_selector)
    获取一组相同css的元素

二、elements的使用

  • 定位element,返回值为WebElement类;
  • 定位elements,返回值为list列表类型,列表中每个值为WebElement类;
    elements主要用于当一个页面有多个属性相同的元素时,可通过获取所有元素,再通过取值方式获取某个所需的元素。
1. element与elements区别
# 获取百度网址的输入框
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
# 使用element获取元素
element = driver.find_element_by_id(id_="kw")
print("element:", element)
print(type(element))
# 使用elements获取元素
elements = driver.find_elements_by_id(id_="kw")
print("elements:", elements)
print(type(elements))
"""结果
element: <selenium.webdriver.remote.webelement.WebElement (session="0ed710a56611b1a2f9b4de9475de9908", element="0.8557849382364942-1")>
<class 'selenium.webdriver.remote.webelement.WebElement'>
elements: [<selenium.webdriver.remote.webelement.WebElement (session="0ed710a56611b1a2f9b4de9475de9908", element="0.8557849382364942-1")>]
<class 'list'>
"""
2. elements对百度网页上的任意一个链接随机操作
<div id="u1">
  <a href="http://news.baidu.com" name="tj_trnews" class="mnav">新闻</a>
  <a href="https://www.hao123.com" name="tj_trhao123" class="mnav">hao123</a>
  <a href="http://map.baidu.com" name="tj_trmap" class="mnav">地图</a>
  <a href="http://v.baidu.com" name="tj_trvideo" class="mnav">视频</a>
...
</div>
import random
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
mnav_data = driver.find_elements_by_class_name("mnav")    # 获取所有链接数据
length = len(mnav_data)
choice = random.randint(0, length-1)     # 随机值  
mnav_data[choice].click()    
time.sleep(2)
driver.quit()

相关文章

网友评论

      本文标题:selenium应用之“定位一组元素”

      本文链接:https://www.haomeiwen.com/subject/lbdqmqtx.html