我刚开始使用java Script学习Selenium Webdriver,我问的问题可能是一个愚蠢的问题。但仍想知道是否可能。
根据我的问题,请看下面的例子
在任何登录页面中,输入有效的“用户名”并单击“登录”按钮,它会抛出错误消息“请输入密码”,“光标”将位于“密码”字段中
因此,我们可以通过代码获取错误消息。现在,我们如何通过代码找到或识别网页中的“光标”位置?
答案 0 :(得分:2)
根据定义,任何具有焦点的窗口小部件也都有光标。所以driver.switchTo()。activeElement()将返回当前关注的WebElement。它实际上并没有改变任何东西,只返回活动元素。你可以打电话
expectedElement.equals(driver.switchTo().activeElement());
验证expectedElement是否具有焦点。
答案 1 :(得分:0)
嘿,使用Selenium Web驱动程序库的user3313128,只能通过知道将其移动到的最后位置来确定当前位置。
可悲的是,JavaScript不能让您快速获得X&Y。
解决此问题的一个简单方法是在浏览器中简单运行一个简单功能
async function (){
await this.driver.executeScript(function( ) {
let mouse = { x:0, y:0 }
onmousemove = function(e){ mouse.x = e.clientX, e.clientY }
})
}
此功能将始终在浏览器中跟踪鼠标X和Y
然后,当您需要知道鼠标的位置时,只需调用此脚本
mouse = driver.executeScript( function (){return mouse})
尽管聪明的举动是在每次鼠标移动并单击()时在服务器端的JS内跟踪所有这些操作。