如何使用Robot Framework从元素中获取十六进制格式的背景颜色

问题描述 投票:0回答:2

我尝试这种方式并使用 SeleniumLibrary 并使用 Python 2.7.16

    ${elements}    Get Webelement    (//div[@class="slds-col call-scripticon"])[1]
    ${bg color}    Call Method    ${elements}    value_of_css_property    background-color

但我得到了 rgb(36, 6, 66) 我不知道如何获得 #240642 格式的颜色

HTML

<div class="slds-col call-scripticon" data-aura-rendered-by="2:7200;a" xpath="1"></div>

风格

    element.style {
}
.call-scripticon {
   background-color: #240642;
}

请大家帮帮我。

hex robotframework rgb
2个回答
0
投票

您可以在 python 中创建一个关键字,将颜色从 RGB 转换为 HEX。

假设您创建了一个名为 testLibrary.py 的模块,您将在其中创建更改颜色格式的 python 方法:

def transform_RGB_to_HEX(arg1):
    hex_result = "".join([format(val, '02X') for val in arg1])
    return hex_result

您现在唯一需要做的就是将测试库导入到您的机器人文件中并调用关键字,就像处理现有的测试库一样。

*** Settings ***
| Library | MyLibrary.py

*** Test Cases ***
| Example that get color in format RGB and transform it into HEX
|  ${elements}  |  Get Webelement  |  (//div[@class="slds-col call-scripticon"])[1]
|  ${bg color}  |  Call Method     |  ${elements}        |   value_of_css_property    | background-color 
|  ${hex_color} |  transform RGB to HEX |  ${bg color}


0
投票

创建一个Python函数

def rgba_to_hex(rgba):
    # Split the string and extract the integer values
    rgba_values = rgba.strip('rgba()').split(',')
    rgba_values = [int(value.strip()) for value in rgba_values]
    
    # Convert RGBA to HEX
    hex_value = "#{:02x}{:02x}{:02x}".format(*rgba_values[:3])  # RGB values
    
    return hex_value

之后,称之为Robot Framework

TC
${HexColorTxtUrl}    Rgba To Hex    ${colorTxtUrl}
Should Be Equal    '${HexColorTxtUrl}'    ${color}    
© www.soinside.com 2019 - 2024. All rights reserved.