gpt4 book ai didi

javascript - 是否可以加快 Selenium 中的 move_to_element() 速度或者还有其他替代方案?

转载 作者:行者123 更新时间:2023-11-28 03:22:37 27 4
gpt4 key购买 nike

抓取网页时触发 onmouseover 事件的最快方法是什么?

所以我想将鼠标移动到一个 div 元素上,然后该元素调用一个 javascript 函数来更新另一个 div(显示一个工具提示,我想抓取它)。当鼠标移离第一个div时,工具提示消失,但仍然可以抓取掉它,因为只是显示样式设置为none。我希望尽快完成此过程。

目前我使用 Selenium 和 move_to_element ,大约需要 0.55 秒。这相当长,因为我最终必须重复此过程 >60 次。

start_time = time.time()
action = ActionChains(driver)
action.move_to_element(box)
action.perform()
print("Time: ", time.time() - start_time()) # ~0.5s

当我在 scrapy shell 中使用它时,我看到此 selenium 请求显示以下消息。

[selenium.webdriver.remote.remote_connection] DEBUG: POST http://127.0.0.1:57309/session/49aea696ad5c6a23dd1a292adacf1d92/actions {"actions": [{"parameters": {"pointerType": "mouse"}, "type": "pointer", "id": "mouse", "actions": [{"duration": 250, "x": 0, "type": "pointerMove", "y": 0, "origin": {"element-6066-11e4-a52e-4f735466cecf": "63f7afad-d9d6-49c2-989a-75c6d083c055"}}]}, {"type": "key", "id": "key", "actions": [{"duration": 0, "type": "pause"}]}]}

在“actions”处显示“duration:250”,我怀疑这是 move_to_element 操作的持续时间。我无法找到任何方法来手动减少此持续时间,这可能吗?我还听说 scrapy-splash 比 selenium 快得多,但还没有找到很多关于如何使用它的信息。它还可以模拟悬停事件,或者使用正确的参数直接调用 JavaScript 函数吗?

最佳答案

虽然这是旧的。如果它对任何人有帮助......至少在 Python selenium 模块中,您可以通过在操作链上设置以下属性来设置鼠标移动的持续时间:

driver = webdriver.Firefox()
act = ActionChains(driver)
act.w3c_actions.pointer_action._duration = 0

默认值似乎设置为 250。

关于javascript - 是否可以加快 Selenium 中的 move_to_element() 速度或者还有其他替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58985175/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com