zoukankan      html  css  js  c++  java
  • selenium定位方式-获取标签元素:find_element_by_xxx

    定位方式取舍
    # 唯一定位方式、多属性定位、层级+角标定位(离目标元素越近,相对定位越好)

    # 推荐用css selector(很少用递进层次的定位)
    # 什么时候用xpath呢? 当你定位元素时,必须要用角标定位才可以确立唯一时,可以选用xpath

    selenium提供18种定位方式,其中包含8种单数 8种复数 2种父类写法

    获取标签元素的8种单数方式如下:

    element是单数,elements是复数

    from selenium import webdriver
    import time
    
    driver = webdriver.Chrome()
    driver.get('http://ui.imdsx.cn/uitester')
    
    # 最大化窗口
    driver.maximize_window()
    
    # 将屏幕滚动定位到最上方
    js = 'window.scrollTo(0,0);'
    driver.execute_script(js)
    
    # 停顿2秒后再进行操作
    time.sleep(2)
    
    #####################################
    
    # 通过ID定位目标元素
    driver.find_element_by_id('i1')
     
    # 通过className定位目标元素
    driver.find_element_by_class_name('c1')
     
    # 通过name属性定位目标元素
    driver.find_element_by_name('n1')
     
    # 通过Xpath定位目标元素
    driver.find_element_by_xpath('//*[@id="i1"]').send_keys('这是在输入框内输入的文本信息')
     
    # 通过css Selector定位目标元素
    element=driver.find_element_by_css_selector('input[placeholder="请通过CSS SELECTOR定位元素"]')
    element.send_keys('111')
     
    # 通过标签名称定位(注:在一个页面中,标签一定会重复,所以不用这个来进行定位)
    # 默认写在多个相同标签的第一个里面
    driver.find_element_by_tag_name('input').send_keys('111')
     
    # 通过标签中的文本查找元素
    driver.find_element_by_link_text('跳转大师兄博客地址').click()
     
    # 通过标签中文本的模糊匹配查找
    driver.find_element_by_partial_link_text('大师兄').click()
    # 单数的父类,是上面8种单数方式的底层封装。参数化的一种调用方式而已。
    driver.find_element()

    获取标签元素的复数方式和单数方式是一一对应的,由于复数形式,返回的是list,使用不方便,不知道要取哪个值,所以实际运用中并不常用

    举一个例子:

    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.get('http://ui.imdsx.cn/html')
    
    js = 'window.scrollTo(0,1800);'
    driver.execute_script(js)
    
    elements = driver.find_elements_by_css_selector('select')
    print(elements)

    输出结果如下:

    [<selenium.webdriver.remote.webelement.WebElement (session="f4e11718e43e6bd3415e10c0e43998e0", element="0.9816753200516803-1")>, <selenium.webdriver.remote.webelement.WebElement (session="f4e11718e43e6bd3415e10c0e43998e0", element="0.9816753200516803-2")>, <selenium.webdriver.remote.webelement.WebElement (session="f4e11718e43e6bd3415e10c0e43998e0", element="0.9816753200516803-3")>, <selenium.webdriver.remote.webelement.WebElement (session="f4e11718e43e6bd3415e10c0e43998e0", element="0.9816753200516803-4")>]
     



  • 相关阅读:
    github使用及介绍
    git分支 & git标签
    nginx配置文件参考
    PHP优化
    Nginx优化
    Git安装及基础命令使用
    JavaScript框架设计-node节点
    论文爬取(一)
    JAVA日报
    JAVA日报
  • 原文地址:https://www.cnblogs.com/denise1108/p/10538356.html
Copyright © 2011-2022 走看看