zoukankan      html  css  js  c++  java
  • selenium定位元素方法

    1、通过id定位元素
    写法1:
    element = driver.find_element_by_id("kw")
    写法2:
    from selenium.webdriver.common.by import By
    element = driver.find_element(by=By.ID, value="kw")
    Tips: by=By.ID表示以id的方式定位web元素,下面的例子有类似的写法以此类推
     
    2、通过class定位元素
    写法1:
    cheeses = driver.find_elements_by_class_name("cheese")
    Tips:注意,这里返回的是一个包含web元素的列表,下同
    写法2:
    from selenium.webdriver.common.by import By
    cheeses = driver.find_elements(By.CLASS_NAME, "cheese")
     
    3、通过name定位元素
    写法1:
    cheese = driver.find_element_by_name("cheese")
    写法2:
    from selenium.webdriver.common.by import By
    cheese = driver.find_element(By.NAME, "cheese")
     
    4、通过tag(html标签)定位元素
    写法1:
    如果iframe这个tag在本html中是唯一的,可以根据iframe这个tag名来找到该元素
    frame = driver.find_element_by_tag_name("iframe")
    写法2:
    from selenium.webdriver.common.by import By
    frame = driver.find_element(By.TAG_NAME, "iframe")
    注意,通过title标签名获取title元素,打印的文本值为空:
    ele2=driver.find_element_by_tag_name('title')
    print(ele2.text)
     
    5、获取页面中title值
    Title是一个特殊的元素,标签内的文本表示页面的标题,
    可以通过driver.title属性获取页面标题
     
    6、通过超文本连接(link)来定位元素
    写法1:
    ele = driver.find_element_by_link_text("转到百度")
     
    写法2:
    from selenium.webdriver.common.by import By
    ele = driver.find_element(By.LINK_TEXT, "转到百度")
     
    7、通过partial_link定位
    当全称很长时,使用模糊匹配
    如百度首页,点击hao123时:
    driver.find_element_by_partial_link_text('ao123').click()
     
    8、css定位方法
    https://www.cnblogs.com/aiyumo/p/12576150.html
    9、xpath定位方法
    https://www.cnblogs.com/aiyumo/p/12576380.html
    总结:有时候通过上面的方法定位不到元素,只能根据上层元素去定位
    注意:现在很多页面加载后(也加载javascript前端代码), 由前端代码动态改变界面的内容,比如从后端获取一些数据后,再动态改变界面的内容。尤其是很多采用了框架像   angular, react, vue这些都会这样做,这样会导致一个问题,操作后再去操作之前定位的元素,会报错,每次都要重新获取元素,使元素一直都是最新的。
     
  • 相关阅读:
    Mysql常见索引介绍
    Mysql字段修饰符(约束)
    使用select和show命令查看mysql数据库系统信息
    Mysql5.7数据库介绍
    对Mysql数据表本身进行操作
    各种修改Mysql字符集
    Mysql的安全配置向导命令mysql_secure_installation
    firewalld介绍
    CentOS7使用yum安装mysql5.7
    利用ASP.NET一般处理程序动态生成Web图像(转)
  • 原文地址:https://www.cnblogs.com/aiyumo/p/11758487.html
Copyright © 2011-2022 走看看