• 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这些都会这样做,这样会导致一个问题,操作后再去操作之前定位的元素,会报错,每次都要重新获取元素,使元素一直都是最新的。
     
  • 相关阅读:
    pyqt的常用知识点记录
    Ansys采用后处理list Rusult输出位移时负号原因导致不能分列的python解决方法
    matlab调用ANSYS进行分析
    Matlab采用load加载txt文件时显示:错误使用load,无法打开要输出的文件
    Matlab绘制单元,云图
    关于chol分解的置换向量的问题及正定对称稀疏矩阵的构造
    Pr中字幕模糊的问题
    Matlab中文乱码问题
    Qt信号与槽---基于vs2013+qt5
    Microsoft To Do-安卓-Windows-Mac
  • 原文地址:https://www.cnblogs.com/aiyumo/p/11758487.html
Copyright © 2020-2023  润新知