我有一个div,其高度非常低。我无法访问位于div底部的一些子元素。我试着滚动使用
element .elements.last.wd.location_once_scrolled_into_view
,我无法滚动它。
然后我试着看看是否可以增加div的高度,以便脚本可以查看所有节点。原始样式为style = 'overflow-y:auto;overflow-x:auto;width:150px;height: 350px;
我用来修改它的代码是
element = @browser.div(:id => 'div:d')
puts element.attribute_value('style')
script = "return arguments[0].style = 'overflow-y:auto;overflow-x:auto;width:150px;height: 750px; '"
@browser.execute_script(script, element)
puts "edited height"
puts element.attribute_value('style')
我仍然将样式值视为overflow-y:auto;overflow-x:auto;width:150px;height: 350px;
。
是否无法在运行时编辑div的高度?
答案 0 :(得分:2)
<强>问题强>
arguments[0].style =
看起来不是跨浏览器兼容的。当我使用Firefox运行代码时,高度已更新。相反,在Chrome中运行时,高度未更新。
Mozilla开发者页面(https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.style)上提到了这种差异:
除了在Opera中,通过为其指定字符串,可以 来设置样式 (只读)样式属性,如elt.style =&#34; color:blue;&#34;。这是 因为style属性返回CSSStyleDeclaration对象。 相反,您可以设置样式属性,如下所示:
<强>解决方案强>
要更改样式属性值,最好使用setAttribute
方法:
script = "arguments[0].setAttribute('style', 'overflow-y:auto;overflow-x:auto;width:150px;height:750px;')"
但是,考虑到你只想改变身高,你可以这样做:
script = "arguments[0].style.height = '750px';"