找回密码
 立即注册
首页 业界区 科技 selenium之Web Element的属性和方法

selenium之Web Element的属性和方法

班闵雨 7 天前
Web Element的属性和方法

在selenium中,Web Element对象提供了许多属性和方法来和页面上的元素进行交互;比如下面几个

  • 属性

    • id,表示该元素的内部标识符
    • size,返回元素的宽度、高度;像素单位
    • rect,返回元素的宽高和坐标信息;

      • x,y;元素左上角相对于页面左上角的坐标
      • width、height;元素的宽度和高度

    • tag_name;返回元素的标签名称
    • text;返回元素的可见文本内容;包括子元素的文本

      • 如果元素是隐藏不可见的;可能返回空字符串


  • 方法

    • send_keys();输入框输入文本、模拟键盘操作
    • clear(),情况输入框或文本区域内容
    • click();单击元素
    • get_attribute();获取元素的HTML属性值(id、href、value等等)
    • is_selected();检查元素是否被选中;返回True、False
    • is_enabled();检查元素是否可交互;返回True、False
    • is_displayed();检查元素在页面上是否可见;返回True、False
    • value_of_css_property();获取元素css的属性值(color、font-size、display等)

上面就是常见的一些属性和方法了,当然还有一些其他的;就不一一展示了;需要自己私下去研究
下面废话不多说,开始操练起来
id
  1. element = browser.find_element(By.ID,'kw')
  2. print(element.id)
  3. # f.121AC56FA78A2FF7D42F1F24490E61E2.d.768EC4E5CE47215279360D8DBAC35389.e.6
  4. # 获取元素的id属性
  5. print(element.get_attribute('id')) # kw
复制代码
size
  1. # 返回元素的宽高
  2. element = browser.find_element(By.ID,'kw')
  3. print(element.size) # {'height': 44, 'width': 550}
  4. print(element.size['width']) # 550
复制代码
rect
  1. # 返回元素的宽高和坐标信息
  2. element = browser.find_element(By.ID,'kw')
  3. print(element.rect) # {'height': 44, 'width': 550, 'x': 298, 'y': 294}
复制代码
tag_name
  1. # 返回元素的标签名
  2. element = browser.find_element(By.ID,'kw')
  3. print(element.tag_name) # input
复制代码
text
  1. # + text;返回元素的可见文本内容;包括子元素的文本
  2. #     + 如果元素是隐藏不可见的;可能返回空字符串
  3. element = browser.find_element(By.ID,'s-usersetting-top')
  4. print(element.text) # 设置
复制代码
send_keys()
  1. element = browser.find_element(By.ID, 'kw')
  2. # 输入内容
  3. element.send_keys('selenium')
  4. time.sleep(3)
  5. # 模拟回车操作
  6. element.send_keys(Keys.ENTER)
  7. time.sleep(3)
复制代码
clear()
  1. # 清空输入框内容,再输入其它的
  2. element.clear()
  3. time.sleep(3)
  4. element.send_keys('python')
  5. time.sleep(3)
复制代码
click()
  1. # 首先找到需要点击的元素
  2. button = browser.find_element(By.ID,'su')
  3. button.click()
  4. time.sleep(3)
复制代码
get_attribute()
  1. # 获取元素的属性值
  2. button = browser.find_element(By.ID,'su')
  3. print(button.get_attribute('value')) # 百度一下
复制代码
is_selected()
  1. 这里我为了演示方便,用了下面这个站点;可以看的更加清楚
  2. url_demo = r'http://www.自动化测试.com/demo/checkbox'
  3. browser.get(url_demo)
  4. # 找到所有Input标签,遍历输出是否是被选中的状态
  5. elements = browser.find_elements(By.TAG_NAME,'input')
  6. for element in elements:
  7.     print(element.is_selected())
  8. """
  9. False
  10. False
  11. False
  12. """
  13. # 对第二个进行勾选,其实就是点击一下那个小方块
  14. elements[1].click()
  15. # 再次遍历他们的状态
  16. for element in elements:
  17.     print(element.is_selected())
  18. """
  19. False
  20. True
  21. False
  22. """
复制代码
is_enabled()
  1. # is_enabled()检查元素是否可交互;返回True、False
  2. url_demo = r'http://www.自动化测试.com/demo/checkbox'
  3. browser.get(url_demo)
  4. elements = browser.find_elements(By.TAG_NAME,'input')
  5. for element in elements:
  6.     print(element.is_enabled())
  7. """
  8. True
  9. True
  10. True
  11. """
  12. time.sleep(3)
  13. # 这里我使用了js把第二个框给置灰不可选择了
  14. browser.execute_script("arguments[0].disabled = true;", elements[1])
  15. time.sleep(5)
  16. # 发现第二个输出为False了
  17. for element in elements:
  18.     print(element.is_enabled())
  19. """
  20. True
  21. False
  22. True
  23. """
复制代码
is_displayed()
  1. #  + is_displayed();检查元素在页面上是否可见;返回True、False
  2. browser.get("https://the-internet.herokuapp.com/dynamic_loading/1")
  3. hidden_element = browser.find_element(By.ID, "finish")
  4. print(hidden_element.is_displayed())  # False(初始状态)
  5. browser.find_element(By.ID, "start").find_element(By.TAG_NAME, "button").click()
  6. # # 等待元素显示后再次检查
  7. time.sleep(10)
  8. print(hidden_element.is_displayed())  # True
复制代码
value_of_css_property()
  1. #   + value_of_css_property;获取元素css的属性值(color、font-size、display等)
  2. url_demo = r'http://www.自动化测试.com/demo/button'
  3. browser.get(url_demo)
  4. elements = browser.find_elements(By.TAG_NAME, 'button')
  5. print(elements[0].value_of_css_property('color')) # rgba(255, 255, 255, 1)
复制代码
好了,Web Element的一些常用属性、方法就先介绍到这里了;剩下的一些可以私下自己练习练习

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册