You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Robot Framework适配Browser库的获取CSS属性关键字

问题根因

直接把Get WebElement替换为Get Element不生效的核心原因是两个库的元素操作逻辑完全不兼容:

  • SeleniumLibrary返回的是Selenium原生WebElement对象,支持通过Call Method直接调用对象自带的value_of_css_property方法读取CSS值
  • Browser库基于Playwright封装,返回的是库自定义的元素句柄,不存在Selenium WebElement的原生方法,不能直接复用原来的Call Method调用逻辑。
适配Browser库的可直接用版本

替换原关键字定义即可,原有调用时的传参顺序、使用方式完全不需要修改:

*** Keywords ***
Get CSS Property Value
    [Documentation]
    ...    获取元素的CSS属性值
    ...    
    ...    读取指定定位器对应元素的目标CSS计算属性值
    ...    
    ...    参数:
    ...    - locator           (string)    支持所有Browser库兼容的定位器语法,含xpath、css、id、role、文本定位等
    ...    - property_name     (string)    要读取的CSS属性名,例如color、font-size、display
    ...    
    ...    返回值             (string)    读取到的CSS属性字符串值,定位失败或属性不存在时直接抛出异常
    ...        
    [Arguments]    ${locator}    ${attribute name}
    ${prop_val}=    Get CSS Value    ${locator}    ${attribute name}
    [Return]     ${prop_val}
低版本Browser库兼容方案

如果你使用的Browser库版本较旧,没有内置Get CSS Value关键字,把关键字执行行替换为JS执行逻辑即可,效果完全一致:

${prop_val}=    Execute JavaScript    (element, cssProp) => window.getComputedStyle(element).getPropertyValue(cssProp)    ${locator}    ${attribute name}
注意事项
  • SeleniumLibrary和Browser库的元素对象、操作体系完全独立,不要跨库混用元素操作关键字
  • 改写后的关键字兼容驼峰(如backgroundColor)和短横线(如background-color)两种CSS属性名写法,不需要额外做格式转换
  • 支持所有Browser库(Playwright)原生定位语法,比原Selenium版本支持的定位维度更丰富

内容的提问来源于stack exchange,提问作者Anisha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 21:51:19