繁体   English   中英

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

[英]How to find “Cursor” position in webpage with Selenium Webdriver?

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

根据我的问题,请查看以下示例

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

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

根据定义,任何具有焦点的小部件也具有光标。 因此 driver.switchTo().activeElement() 将返回当前聚焦的 WebElement。 它实际上并没有改变任何东西,只是返回活动元素。 你可以打电话

expectedElement.equals(driver.switchTo().activeElement());

验证 expectedElement 是否具有焦点。

嘿 user3313128 使用 Selenium Web 驱动程序库,只能通过知道您将其移动到的最后一个位置来确定当前位置。

遗憾的是,Javascript 没有为您提供快速获取 X 和 Y 的选项。

一个简单的解决方法是在浏览器中简单地运行一个简单的功能

async function (){
    await this.driver.executeScript(function(  ) { 
        let mouse = { x:0, y:0 }
        onmousemove = function(e){ mouse.x = e.clientX, mouse.y = e.clientY }
    })
}

此功能将始终在浏览器中跟踪您的鼠标 X 和 Y

然后当您需要知道鼠标的位置时,只需调用此脚本

mouse = driver.executeScript( function (){return mouse}) 

尽管明智的做法是在每次鼠标移动和 click() 时在服务器端的 JS 中跟踪所有这些。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM