我最近尝试使用selenium RC的GetAttribute方法,但立即遇到了挑战.我试图执行一个非常简单selenium.GetAttribute("//a/@href")但代码抛出一个SeleniumException,消息"错误:无法找到元素属性:// a/@ href".通过替换selenium.GetText("//a[@href]")代替的的getAttribute电话,我确认了一个元素肯定存在,因为这种说法正确的返回链接的文本.
然后我尝试了:
selenium.GetAttribute("document.getElementsByTagName('a')[0].getAttribute('href')")- 同样的问题; 稍有不同的错误消息(并且错误消息缺少最后的括号): "错误:元素document.getElementsByTagName('a')[0] .getAttribute('找不到'href'.请注意,这个确切的表达式在Firebug中正常工作安慰.selenium.GetText("xpath=/html/body/a[@href]")用来确认存在然后selenium.GetAttribute("xpath=/html/body/a/@href")获取属性 - 它工作了!虽然手册明确指出相对 xpath定位器不需要显式定位器类型(即"xpath ="前缀),但它对绝对 xpath定位器保持沉默; 我从中解释说前缀是必需的.但出于好奇,我回到了我的相对表达并添加了显式前缀 - 更改selenium.GetAttribute("//a/@href")为selenium.GetAttribute("xpath=//a/@href")- 这也有效!
最后,我在Selenium IDE中使用非常方便的" 查找"按钮进行的实验表明,它可以很好地处理元素,但是会失败并带有属性.我可以理解,突出属性没有意义,因为属性不是可见的页面元素,但为什么不突出显示包含属性的元素,并使其以不同的颜色?也许不是一项微不足道的任务......
我将上述实验的结果归结为这些问题; 这是我在这里发布的全部目的!这些似乎对我来说都是一个错误,但如果您认为我的使用不正确或有解决方法,请告诉我:
"xpath=//a/@href"定位器,按下查找按钮会产生这个丑陋的消息:"找不到[错误]定位器:xpath = // a/@ href,error = [Exception ..."无法转换JavaScript参数arg 0 [inIFlasher.scrollElementIntoView …