簡體   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