如何通过Ruby Watir获取特定元素的源地址(src属性)值?
- 内容介绍
- 文章标签
- 相关推荐
本文共计450个文字,预计阅读时间需要2分钟。
为了实现这个需求,我们可以使用Ruby的HTML解析库,如`Nokogiri`,来解析HTML内容,并提取所需的信息。以下是一个简单的Ruby脚本,它解析HTML内容,提取``标签中的文本和``标签的`src`属性,然后按照要求输出结果。
rubyrequire 'nokogiri'
_content=<<-HTML hello HTML
解析HTMLdoc=Nokogiri::HTML(_content)
提取td标签的文本和img标签的src属性result=doc.xpath('//table/tr/td').map do |cell| if cell.name=='td' && cell.xpath('img').any? # 如果td标签内包含img标签,则只输出img的src属性 cell.xpath('img/@src').text else # 否则输出td标签的文本 cell.text.strip endend
输出结果puts result.join(' ')puts end
这段代码会输出:hello xyz.pngend
这样,我们就按照要求输出了所需的文本和图片信息。
<table> <tr> <td>hello</td> <td><img src="xyz.png" width="100" height="100"></td> </tr> </table> tabledata.rows.each do |row| row.cells.each do |cell| puts cell.text end end puts "end"
获得输出 – >
hello end
我应该怎么做这样的输出 – >
hello xyz.png end
没有使用Nokogiri.
获取属性您可以使用Element#attribute_value方法获取元素的属性.例如,
element.attribute_value( ‘属性’)
对于许多标准属性,您还可以执行以下操作:
element.attribute
输出单元格文本或图像文本
假设单元格有文本或图像:
>您可以遍历单元格
>检查图像是否存在
>输出图像src(如果存在)
>否则输出单元格文本
这看起来像:
tabledata.rows.each do |row| row.cells.each do |cell| if cell.image.exists? puts cell.image.src #or cell.image.attribute_value('src') else puts cell.text end end end puts "end"
本文共计450个文字,预计阅读时间需要2分钟。
为了实现这个需求,我们可以使用Ruby的HTML解析库,如`Nokogiri`,来解析HTML内容,并提取所需的信息。以下是一个简单的Ruby脚本,它解析HTML内容,提取``标签中的文本和``标签的`src`属性,然后按照要求输出结果。
rubyrequire 'nokogiri'
_content=<<-HTML hello HTML
解析HTMLdoc=Nokogiri::HTML(_content)
提取td标签的文本和img标签的src属性result=doc.xpath('//table/tr/td').map do |cell| if cell.name=='td' && cell.xpath('img').any? # 如果td标签内包含img标签,则只输出img的src属性 cell.xpath('img/@src').text else # 否则输出td标签的文本 cell.text.strip endend
输出结果puts result.join(' ')puts end
这段代码会输出:hello xyz.pngend
这样,我们就按照要求输出了所需的文本和图片信息。
<table> <tr> <td>hello</td> <td><img src="xyz.png" width="100" height="100"></td> </tr> </table> tabledata.rows.each do |row| row.cells.each do |cell| puts cell.text end end puts "end"
获得输出 – >
hello end
我应该怎么做这样的输出 – >
hello xyz.png end
没有使用Nokogiri.
获取属性您可以使用Element#attribute_value方法获取元素的属性.例如,
element.attribute_value( ‘属性’)
对于许多标准属性,您还可以执行以下操作:
element.attribute
输出单元格文本或图像文本
假设单元格有文本或图像:
>您可以遍历单元格
>检查图像是否存在
>输出图像src(如果存在)
>否则输出单元格文本
这看起来像:
tabledata.rows.each do |row| row.cells.each do |cell| if cell.image.exists? puts cell.image.src #or cell.image.attribute_value('src') else puts cell.text end end end puts "end"

