js字符串截取

之前在获取元素属性时,踩了个坑,记录一下。

用selenium做web自动化时,获取元素属性时,有时候会有单位,比如元素的宽高,得到的属性会是XXpx这样,但我只想要数字。就用了这样的函数将数字取了出来。

def get_num(original_data):
    num = re.sub("\D", "", original_data)
    return str(num)

没有考虑到的情况是,数字有可能为小数,这样小数点是取不出来的。再做一些处理,觉得好麻烦。

其实很简单,可以用字符串截取将单位截掉就好了。
直接使用js获取元素属性再进行字符串截取,一步就可以了。

document.getElementById("#element_id").style.width.slice(0,-2)

顺便学习一下js的字符串截取方法。

slice()

  1. 第一个参数代表开始位置,第二个参数代表结束位置
  2. 若参数值为负数,则将该值加上字符串长度后转为正值
  3. 若第一个参数等于大于第二个参数,则返回空字符串.
    eg:
    js字符串截取_第1张图片

substring()

  1. 第一个参数代表开始位置,第二个参数代表结束位置
  2. 若参数值为负数,则将该值转为0
  3. 两个参数中,取较小值作为开始位置

eg:
js字符串截取_第2张图片
substring总是把较小的数作为起始位置。

substr()

第一个参数代表开始位置,第二个参数代表截取的长度。
js字符串截取_第3张图片
总结:

  1. 参数为0返回整个字符串
  2. substring总是把较小的数作为起始位置,且将参数的负数转换为0

你可能感兴趣的:(自动化测试)