为什么返回文档.getElementsByClassName正在工作,而getElementbyId不在Watir中
Why is that return document.getElementsByClassName is working and getElementbyId is not in Watir?
我有这行代码:
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')
更改:
puts @browser.execute_script('return document.getElementById("street")[0]').innerHTML
至:
puts @browser.execute_script('return document.getElementById("street")').innerHTML
getElementById重新运行对象或为null请参阅文档
正如名称getElementById
所说,它只返回一个元素,因为ID应该给出一次。getElementsByClassName,返回一个元素数组,因为类可以多次使用。所以只需移除[0]
相关文章:
- reactjs this.refs vs document.getElementById
- 如何通过adf中的document.getElementById获取inputText字段值
- 无法获取文档.GetElementById工作正常
- document.getElementById(“st”).click();不起作用
- Javascript:Can't使用getElementById获取元素
- 如何使用“;getElementById”;在一个循环中
- Javascript GetElementByID has no value
- document.getElementById并使用id名称
- document.getElementById在js中不起作用
- document.getElementById.style.backgroundImage not working
- 如何从document.getElementById()中获取UniqueID
- 从输入框、Javascript、getElementById获取值
- 什么'这个javascript代码getElementById有问题
- DOMDocument getelementbyid conflict?
- 如何从getelementbyid用javascript编写变量
- inline svg--getElementById在Opera中不起作用
- 在init function()中调用getElementById(“..”),而不是想用它做点什么的函数
- 将global.getelementbyid连接到单个变量中
- 未捕获的类型错误:未定义不是上的函数.GetElementByID
- document.getElementById(..) is null