ruby – 与Capybara一起获得边境风格
发布时间:2020-12-17 03:54:46 所属栏目:百科 来源:网络整理
导读:我需要获得元素的边框样式.我尝试了以下代码: sample = page.execute_script(" var x = window.document.querySelector('#{path}'); a = window.getComputedStyle(x,null).getPropertyValue('border'); return a;") puts sample 它打印为空. (注意:元素的
我需要获得元素的边框样式.我尝试了以下代码:
sample = page.execute_script(" var x = window.document.querySelector('#{path}'); a = window.getComputedStyle(x,null).getPropertyValue('border'); return a; ") puts sample 它打印为空. (注意:元素的边框是 – 实心) 解决方法
根据您之前的问题,我假设您使用的是selenium-webdriver.
本机selenium-webdriver元素具有检查计算样式的方法 – Element#css_value. 如果您有一个页面HTML: <html> <body> <p style="border-style:solid;">A solid border.</p> </body> </html> 然后你可以使用以下方式获得边框样式: puts page.first('p').native.css_value('border-style') #=> 'solid' 请注意代码中: > Capybara使用page.first(‘p’)找到所需的元素 更新: 对于您的具体示例: >似乎如果使用简写的“border”属性,“border-style”属性将为空.相反,您必须使用特定的“border-bottom-style”,“border-left-style”等属性. 考虑到上述情况,您可以使用以下方法检查计算的边框样式: puts page.find_by_id('option').native.css_value('border-bottom-style') #=> "solid" puts page.find_by_id('option').native.css_value('border-left-style') #=> "solid" puts page.find_by_id('option').native.css_value('border-right-style') #=> "solid" puts page.find_by_id('option').native.css_value('border-top-style') #=> "solid" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |