我目前正在使用https://github.com/admc/wd/blob/master/doc/api.md Selenium网络驱动程序来测试网站。我想简单地检查一下我的视图是否在整个屏幕的顶部。
我尝试使用isDisplay()
和getLocationInView
来达到这个目的。
但是,它们可以作为元素的绝对位置或以元素和html页面级别显示,而不是实际视图本身。
我还尝试execute()
eval()
运行JavaScript来捕获窗口然后评估其轴值,因为Selenium运行的是真正的浏览器(Chrome)。
即
...execute("window", function(error, result) { console.log(result) };
...execute("console.log(window)", function(error, result) { console.log(result) };
...execute("return window", function(error, result) { console.log(result) };
但是,我只能从这些陈述的结果中得到null
。
我想我一定错过了一个功能(即使我读了他们的API文档超过3次)。
我认为在测试浏览器中触发JavaScript变量,运行快速函数来获取轴值,并将其保存到var中是一种可行的解决方案。
然而,我甚至无法找到一个有效的解决方案来获取window
全局变量。 (是的,看了所有相关帖子后表明用硒执行js)
*注意和是executeScript
不再可用,至少我现在正在使用的Selenium(根据我的package.json的最新版本)。
*同样重要的是:
我使用wd.js
作为网络驱动器
https://github.com/admc/wd
答案 0 :(得分:1)
Alllrighty。我找到了解决方案!它很直接。我认为这只是因为wd.js
始终使用promise链,所以我无法输出任何只有eval的东西,但我必须添加asserter。所以以下工作完美。
browser.eval("window.pageYOffset")
.should.eventually.equal('0')
.nodeify(done);
如果你想看看window.pageYOffset
中的值是什么,只是手动失败。
带我两天了解这件事。希望它也节省你的时间。