2015-04-17 45 views
2

在这里,我将data_width设置为“57px”。但价值是百分之(50%)..你可以看到下面的代码片段。如何获得风格的价值 - “宽度”使用红宝石的百分比?

任何人都可以解释如何获得百分比的价值?我试过搜索,但没有任何帮助。

红宝石

data_width = find_element(css: 'div > div > div').css_value('width') 

HTML

<div class="someclass" role="progressbar" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100" style="width: 50%;"> 
    <div class="ProgressBar"></div> 
    <span style="visibility:hidden">&nbsp;</span> 
</div> 
+6

得到父宽度('pw'),元件宽度('ew')和百分比等于到'100 * ew/pw' – fcalderan

+0

谢谢。有用。 –

回答

3

您可以尝试使用这样的:

data_width = find_element(css: 'div > div > div').attribute("style") 

那结果将是width: 50%。为了得到公正的号码,你可以使用正则表达式:

data_width.gsub(/[^\d]/, '') 

,这将只是给你50

+1

是的,它会返回,但如果style属性中有更多项目,它将会失败。所以我用下面的代码来使它工作... element.attribute('style'))。split(/; /))。map do | value | 返回值[/ \ d + /] if value.include? 'width:' –

+0

哦真棒,那是一种切肉刀的方式 – Elena