我有这行代码:

puts @browser.execute_script('return document.getElementsByClassName("modal-content")[0]').html

它可以工作,它在我的页面源代码中显示HTML标记。。
但当我尝试使用这个字段时:
puts @browser.execute_script('return document.getElementById("street")[0]').innerHTML

还有这行代码:
puts @browser.execute_script('return document.getElementById("street")[0]').html

我有一个错误说:
:nomethoderror:nil:nilclass的未定义方法“innerHTML”
为什么,使用类名获取元素是可行的,而使用Id获取元素则不是?
另一个问题是,我们有没有可能得到页面源的行号?

最佳答案

document.getElementById("street")[0]

不返回HTML元素数组,只返回单个元素。
所以不用[0]
puts @browser.execute_script('return document.getElementById("street").innerHTML')

09-10 11:34
查看更多