如何使用Selenium Webdriver在网页中找到“光标”位置?

时间:2014-02-15 11:00:19

标签: java selenium

我刚开始使用java Script学习Selenium Webdriver,我问的问题可能是一个愚蠢的问题。但仍想知道是否可能。

根据我的问题,请看下面的例子

在任何登录页面中,输入有效的“用户名”并单击“登录”按钮,它会抛出错误消息“请输入密码”,“光标”将位于“密码”字段中

因此,我们可以通过代码获取错误消息。现在,我们如何通过代码找到或识别网页中的“光标”位置?

2 个答案:

答案 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内跟踪所有这些操作。