精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一日一技:Selenium 如何獲取鼠標指向的元素?

開發 前端
每次都要等5秒,豈不是帶薪摸魚?那需求能不能改成獲取當前鼠標點擊的元素呢?如果你實踐一下,你會發現,當你點擊一個鏈接的時候,網頁自動就跳轉到另一個頁面去了,并不能獲取到你需要的數據。

有一個同學在Gne的群里面咨詢如何通過Selenium獲取當前鼠標指向的元素,在我講了方法以后,他過了兩天又來問:

那么,我今天就來寫一篇文章,具體說說應該怎么操作。

這個方法的核心,是借助JavaScript的事件(event)來獲取鼠標所在的元素。然后再把這個元素傳遞給Selenium。我們先來第一步,不考慮Selenium,只使用JavaScript,如何獲取當前鼠標指向的元素呢?

我們首先需要知道在JavaScript中的一個事件句柄,叫做window.onmousemove。默認情況下,它的值是null:

我們可以把它的值修改成一個函數,這個函數接收一個event參數,這樣當鼠標在網頁上移動的時候,這個函數就會被調用。而event參數是一個對象,這個對象有兩個屬性.clientX和.clientY,分別表示鼠標相當于網頁的橫坐標和縱坐標:

function track_mouse(event){
var x = event.clientX, y = event.clientY
console.log('當前鼠標所在位置的坐標:x=' + x + 'y=' + y)
}

運行效果如下圖所示:

你執行命令以后,只要在頁面上移動鼠標,你就會在控制臺看到大量的坐標被打印出來。

接下來,既然你有了當前鼠標所在位置的坐標,那么你只需要根據坐標查詢到這個元素是什么就可以了。在JavaScript中,有一個函數叫做document.elementFromPoint,就能實現這個效果:

function track_mouse(event){
var x = event.clientX, y = event.clientY
var element = document.elementFromPoint(x, y)
if (!element) {
return // 當前位置沒有元素
}
return element
}

那么,如何把這個參數返回給Selenium呢?其實也非常簡單,我們設置一個全局變量window.hovered_element,然后把當前鼠標對應的元素賦值給它。然后在Selenium中,使用.execute_script獲取window.hovered_element就可以了。

我們先來看看完整的JavaScript:

window.hovered_element = null
function track_mouse(event){
var x = event.clientX, y = event.clientY
var element = document.elementFromPoint(x, y)
if (!element) {
window.hovered_element = null
return // 當前位置沒有元素
}
window.hovered_element = element
}
window.onmousemove = track_mouse

然后我們再來看看Selenium中的Python代碼:

import time
from selenium.webdriver import Chrome

driver = Chrome('./chromedriver')
driver.get('https://www.kingname.info/')

js = '''
window.hovered_element = null
function track_mouse(event){
var x = event.clientX, y = event.clientY
var element = document.elementFromPoint(x, y)
if (!element) {
window.hovered_element = null
return // 當前位置沒有元素
}
window.hovered_element = element
}
window.onmousemove = track_mouse
'''

driver.execute_script(js)
while True:
element = driver.execute_script('return window.hovered_element')
if element:
print(f'當前鼠標所在的標簽為:{element.tag_name}, 其中的文本內容為:{element.text}')
time.sleep(1)

運行效果如下圖所示:

獲取到了當前鼠標所在的元素的標簽和標簽里面的文字。

到這里,這個同學需要的功能已經完全實現了。

但可能有聰明的同學會發現,他這個需求是有問題的。我們能看到至少有三個問題:

  • 因為window.onmousemove太靈敏了,它的采樣時間是毫秒級別的,鼠標稍稍移動一點點就會生成一個事件。但是,一個元素的區域是很大的,在一個元素內部移動鼠標,其實根本沒有必要更新window.hovered_element。
  • 在Selenium里面,是通過while True每1秒查詢一次window.hovered_element,雖然我們已經降低了頻率,但大家從上面的圖中可以看到,還是會獲取到很多重復的數據。這是由于有一些元素非常大,我們鼠標如果在上面慢慢移動,時間會超過1秒,那么Selenium就會重復獲取到數據。
  • 由于window.onmousemove的采樣時間間隔很小,所以我們可以近似把鼠標的移動看做是連續的移動。因此,這段代碼會記錄鼠標軌跡路徑上面的每一個元素。但實際上,我們并不會對網頁上所有的內容都感興趣,我們只會對特定的內容感興趣。因此,獲取當前鼠標所在位置的元素,其實是一個偽需求,它根本沒有什么實際上用處,因為噪聲太大了,無用的數據太多了!

實際上,我覺得真正的需求應該是這樣的:如果鼠標在網頁上面某個元素停留時間超過5秒,那么獲取這個元素。

但這樣做太費時間了。每次都要等5秒,豈不是帶薪摸魚?那需求能不能改成獲取當前鼠標點擊的元素呢?如果你實踐一下,你會發現,當你點擊一個鏈接的時候,網頁自動就跳轉到另一個頁面去了,并不能獲取到你需要的數據。

責任編輯:武曉燕 來源: 未聞Code
相關推薦

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2021-10-15 21:08:31

PandasExcel對象

2022-06-28 09:31:44

LinuxmacOS系統

2022-03-12 20:38:14

網頁Python測試

2025-05-28 03:15:00

Scrapy數據sleep

2021-12-16 19:04:26

瀏覽器SeleniumChrome

2020-12-04 06:39:25

爬蟲網頁

2023-10-28 12:14:35

爬蟲JavaScriptObject

2024-07-30 08:11:16

2024-07-30 08:16:18

Python代碼工具

2024-11-11 00:38:13

Mypy靜態類型

2021-05-08 19:33:51

移除字符零寬

2021-02-14 22:22:18

格式圖片 HTTP

2024-11-13 09:18:09

2021-04-05 14:47:55

Python多線程事件監控

2020-12-11 06:30:00

工具分組DataFrame

2021-04-12 21:19:01

PythonMakefile項目

2023-10-29 09:16:49

代碼安全命令

2021-05-13 09:01:51

Cloud Flare瀏覽器網站

2024-08-27 22:08:13

點贊
收藏

51CTO技術棧公眾號

国产在线视频在线| 91在线中文字幕| 精品国产av无码| 国产综合色在线观看| ...xxx性欧美| 精品视频导航| 亚洲图片小说视频| 极品中文字幕一区| 中文字幕亚洲国产| 欧洲熟妇的性久久久久久| 视频在线日韩| 亚洲一区免费在线观看| 日本一区二区三区在线视频| 国产尤物视频在线观看| 亚洲乱亚洲高清| 久久精视频免费在线久久完整在线看 | 日韩美女视频中文字幕| 神马午夜精品91| 窝窝社区一区二区| 91精品国产综合久久久久久久 | 希岛爱理中文字幕| 伊人久久大香线蕉综合网站| 日韩一二三区不卡| av五月天在线| 涩涩视频在线| 一区二区三区色| 亚洲午夜久久久影院伊人 | 国产一区二区黑人欧美xxxx| 第一页在线视频| jizz亚洲女人高潮大叫| 欧美日韩精品二区| 男人天堂网站在线| 一区二区三区视频网站| 95精品视频在线| 4444kk亚洲人成电影在线| 凹凸精品一区二区三区| 亚洲免费激情| 欧美激情免费视频| 四虎影院中文字幕| 99国产**精品****| 一区三区二区视频| 国产色视频一区二区三区qq号| 午夜视频一区二区在线观看| 欧美日韩1234| 小泽玛利亚视频在线观看| 超碰aⅴ人人做人人爽欧美| 亚洲综合清纯丝袜自拍| 国产三级中文字幕| 免费在线你懂的| 国产精品热久久久久夜色精品三区| 精品视频第一区| 外国精品视频在线观看| 丰满岳乱妇一区二区三区| 91麻豆桃色免费看| 国产精品视频在线观看免费| 蜜桃av噜噜一区| 国产精品伦子伦免费视频| 无码人妻精品一区二区蜜桃色欲 | 欧美一区二区三区成人片在线| 国产九色精品成人porny| 国产综合色香蕉精品| 国产精品毛片一区视频播| 国内精品国产三级国产a久久 | 亚洲性视频在线| 日韩午夜三级在线| 逼特逼视频在线观看| 亚洲一区二区三区免费| 精品国产一区二区三区不卡| 一级黄色免费视频| 一道本一区二区三区| 亚洲九九九在线观看| 精品无码在线观看| 婷婷精品进入| 欧美激情精品久久久久久黑人 | 久久激情中文| 日韩女优人人人人射在线视频| www.伊人久久| 美女免费视频一区| 成人午夜高潮视频| 亚洲精品无码久久久| 波多野结衣亚洲一区| 欧美精品123| h网站视频在线观看| 亚洲视频香蕉人妖| 国产综合中文字幕| 一二区成人影院电影网| 欧美日韩国产123区| 免费在线观看日韩av| 久久久久久久久久久久久久久久久久久久 | 色综合久综合久久综合久鬼88| 精品无码久久久久| 亚洲综合日韩| 国产综合福利在线| 亚洲国产999| 久久久91精品国产一区二区三区| 亚洲欧洲国产精品久久| 精品一性一色一乱农村| 日本韩国一区二区| 亚洲午夜精品在线观看| 久久99免费视频| 久久综合久久美利坚合众国| 国产无人区码熟妇毛片多| 麻豆精品国产91久久久久久| 国产精品自拍首页| av网站无病毒在线| 亚洲国产va精品久久久不卡综合| 日本熟妇人妻xxxxx| 91丨精品丨国产| 亚洲精品二三区| 日韩精品123区| 国产精品毛片| 97视频热人人精品| 国产精品视频一区二区久久| 亚洲一区二区在线观看视频| 最新中文字幕免费视频| 欧美亚洲国产日韩| 欧美成人午夜激情| 中文字幕在线观看欧美| 97久久精品人人做人人爽| 日本免费黄色小视频| 六月婷婷综合| 精品国产乱码久久久久久夜甘婷婷 | 中文在线免费看视频| 成人动漫精品一区二区| aaa免费在线观看| 秋霞国产精品| 日韩极品精品视频免费观看| 国产精品老熟女一区二区| 日本中文在线一区| 女人一区二区三区| free性m.freesex欧美| 欧美一区二区视频在线观看 | 亚洲精品www.| 精品欧美久久| 日韩美女福利视频| 欧美精品久久久久久久久久丰满| 亚洲国产乱码最新视频 | 国产美女www| 久久一夜天堂av一区二区三区 | 成全电影大全在线观看| 欧美一级高清片| 特一级黄色录像| 看片网站欧美日韩| 亚洲日本理论电影| 久久99久久99精品免观看软件| 日韩成人中文字幕在线观看| 国产无码精品在线观看| 成人免费毛片嘿嘿连载视频| 成人污网站在线观看| 人人爱人人干婷婷丁香亚洲| 欧美日韩国产成人| 欧美 日韩 中文字幕| 亚洲综合偷拍欧美一区色| 中文字幕55页| 欧美午夜久久| 国内精品国语自产拍在线观看| 国产盗摄精品一区二区酒店| 亚洲国产精品99久久| 国产系列精品av| 99v久久综合狠狠综合久久| 国产极品尤物在线| 亚洲免费福利一区| 日本免费久久高清视频| av电影在线观看一区二区三区| 欧美日韩情趣电影| 国产传媒免费在线观看| 国产91精品欧美| 成人在线观看你懂的| 国产免费av一区二区三区| 国产精品视频地址| av文字幕在线观看| 精品国产1区二区| 国产综合精品视频| 欧美国产日本韩| 天堂网成人在线| 亚洲精品四区| 欧美午夜视频在线| 韩国精品视频在线观看| 美日韩精品免费观看视频| 刘玥91精选国产在线观看| 免费成年人视频在线观看| 国产成人精品1024| 欧美极品欧美精品欧美图片| 成人综合一区| 99re在线播放| 国模冰冰炮一区二区| 最近中文字幕日韩精品| 欧美综合视频在线| 日本韩国精品在线| 欧美日韩国产精品综合| 久久久精品影视| 天美一区二区三区| 国产精品尤物| 大地资源第二页在线观看高清版| 国内精品国产成人国产三级粉色| 日韩美女在线看| 色呦呦在线免费观看| 亚洲欧美一区二区三区四区 | 日韩女优av电影| 日本高清不卡码| 亚洲女人的天堂| 国产精品成人一区二区三区电影毛片| 九九**精品视频免费播放| 妺妺窝人体色777777| 日本大胆欧美| 激情五月综合色婷婷一区二区| 午夜精品久久久久久毛片| 97色在线观看免费视频| 国产三区视频在线观看| 亚洲欧美制服综合另类| 丰满肉嫩西川结衣av| 欧美人成免费网站| 无码人妻丰满熟妇区bbbbxxxx| 亚洲国产人成综合网站| 日本中文在线视频| 中文幕一区二区三区久久蜜桃| 国产精品无码专区| 粉嫩aⅴ一区二区三区四区五区| 国产一级特黄a大片免费| av成人黄色| 国产在线视频综合| 久久一区二区三区电影| 青青草成人网| 日日天天久久| 国精产品99永久一区一区| 9l视频自拍九色9l视频成人| 91精品一区二区| 欧美天堂一区二区| 国产精品极品在线| 美女一区网站| 欧美一区在线直播| 国产中文在线播放| 久久久女女女女999久久| 91精品久久| 成人97在线观看视频| 午夜毛片在线| 搡老女人一区二区三区视频tv| 深夜福利在线观看直播| 亚洲国产97在线精品一区| 亚洲精品无码专区| 精品粉嫩aⅴ一区二区三区四区| 999国产精品视频免费| 欧美群妇大交群中文字幕| 一级二级三级视频| 欧美日韩成人激情| 国产在成人精品线拍偷自揄拍| 欧美美女直播网站| 国产又粗又猛又黄又爽| 7777精品久久久大香线蕉 | 粉嫩一区二区三区| 欧美最顶级的aⅴ艳星| 亚洲一二三四| 日韩av电影手机在线观看| 欧美aaa视频| 国产欧美婷婷中文| 国产免费区一区二区三视频免费| 亚洲在线观看视频网站| 亚洲天堂av资源在线观看| 国产精品av一区| 欧美日韩一区二区三区四区不卡| 精品日产一区2区三区黄免费| 日本福利一区| 日产精品高清视频免费| 欧美电影一区| 一二三四中文字幕| 亚洲美女视频在线免费观看| 男人揉女人奶房视频60分| 久久亚洲美女| 色18美女社区| 国产乱子伦视频一区二区三区| 四虎国产精品免费| 99久久久国产精品免费蜜臀| xxxxx在线观看| 中文字幕一区二区三区四区 | 91成人免费在线观看| 丁香婷婷成人| 日本一区免费| 欧美在线黄色| 欧美日韩在线一| 美女一区二区三区在线观看| 久久发布国产伦子伦精品| 99re热视频这里只精品| 中文字幕第69页| 亚洲成av人影院在线观看网| 欧美在线观看不卡| 欧美人体做爰大胆视频| 黄色片网站免费在线观看| 亚洲人成电影在线观看天堂色| 国产激情在线视频| 欧美亚洲在线播放| japansex久久高清精品| 久久精品五月婷婷| 国产精品国内免费一区二区三区| 久久综合九色综合88i| 久草这里只有精品视频| 人妻在线日韩免费视频| 国产精品久久久久一区二区三区 | 天使萌一区二区三区免费观看| 91丝袜超薄交口足| 久久伊人蜜桃av一区二区| 1024手机在线视频| 日本精品视频一区二区三区| 国产极品久久久| 亚洲网在线观看| 国产精品探花在线| 国产一区二区视频在线观看| 全球av集中精品导航福利| 最近中文字幕免费mv| 玖玖精品视频| 亚洲色偷偷色噜噜狠狠99网 | 亚洲天堂第一区| 免费视频一区二区| 黄色a一级视频| 亚洲www啪成人一区二区麻豆| 一区二区三区免费在线视频| 亚洲精品有码在线| av中文字幕电影在线看| 91视频-88av| 波多野结衣一区| 日本成年人网址| 成人动漫在线一区| 青青草原在线免费观看| 欧美日韩精品一区二区三区四区 | 久久美女福利视频| 国产91丝袜在线播放九色| 国产日韩欧美在线观看视频| 91福利小视频| 日本午夜在线视频| 久久久免费av| 国产精品美女在线观看直播| 日本成人在线不卡| 国产精品123区| 欧美丰满熟妇bbbbbb| 欧美精选一区二区| 欧美成人高清在线| 国产日韩在线亚洲字幕中文| 狠狠操综合网| 日本久久精品一区二区| 久久日韩精品一区二区五区| 99久热在线精品996热是什么| 亚洲成人av资源网| www在线观看黄色| 国产综合欧美在线看| 亚洲伦理精品| aaaaaav| 一本在线高清不卡dvd| 免费在线观看一级毛片| 欧美在线激情网| 久久综合影院| 妺妺窝人体色www在线观看| 国产日本欧洲亚洲| 中文字幕在线播放不卡| 久久九九国产精品怡红院 | 精品免费视频.| а√天堂中文资源在线bt| 久久久99爱| 日韩电影免费一区| 四虎地址8848| 3d动漫精品啪啪1区2区免费 | 国产99久久精品一区二区| 欧美美乳视频| 久久99爱视频| 一区二区三区四区中文字幕| 男人天堂综合网| 日本aⅴ大伊香蕉精品视频| 国产一卡不卡| 免费网站在线观看黄| 亚洲一区二区三区爽爽爽爽爽 | 少妇无套内谢久久久久| 久久精品国产91精品亚洲| 久久在线观看| 一区二区传媒有限公司| 日本一区二区免费在线| 国产老妇伦国产熟女老妇视频 | 3d性欧美动漫精品xxxx软件| 伊人av成人| 成人动漫精品一区二区| 免费一级a毛片| 超在线视频97| 同性恋视频一区| 可以看污的网站| 天天免费综合色| 91短视频版在线观看www免费| 91精品网站| 日韩中文欧美在线| 强行糟蹋人妻hd中文| 日韩精品极品视频免费观看| 欧美高清xxx| 免费看国产曰批40分钟| 国产精品久久一卡二卡| 欧美一区二区公司| 国产在线视频2019最新视频| 日韩图片一区| 成年人二级毛片| 精品无人区太爽高潮在线播放| japansex久久高清精品| 欧美精品色婷婷五月综合| 亚洲日穴在线视频| 黄色大片在线看| 国产99午夜精品一区二区三区|