小编Pra*_*lit的帖子

如何在Python中仅使用Selenium长按(按住)鼠标左键

我正在尝试使用 Python 中的 Selenium 从沃尔玛网站抓取一些评论数据,但它连接了该网站以进行人工验证。检查此“按住”按钮后,不知何故,当我找到该元素时,它以 [ object HTMLIFrameElement ]的形式出现,而不是作为 Web 元素。该元素随机出现在 10 个 iframe 中的任意 iframe 内。可以使用循环进行检查,但是,最终我们无法在没有 Web 元素的情况下在 Selenium 中执行任何操作。

虽然此验证也以弹出窗口的形式出现,但我试图首先解决此页面的问题。div不知怎的,我使用作为网络元素找到了这个按钮的位置。

actions = ActionChains(driver)
iframe = driver.find_element_by_xpath("//div[@id='px-captcha']")
frame_x = iframe.location['x']
frame_y = iframe.location['y']
actions.move_to_element(iframe).move_by_offset(frame_x-550, frame_y+70).build().perform()
Run Code Online (Sandbox Code Playgroud)

如果我执行单击context.click()或右键单击,可以看到鼠标位置位于按钮的中间。 在此输入图像描述

现在,如果我可以长按或者按住鼠标左键一段时间,我想这个验证就可以清除了。为此,我尝试使用click()click_and_hold以及 中的key_down方法(因为按 ctrl 和 Enter 与长按相同)采取行动action,但没有响应,因为这些方法释放按钮,无法长按。我试过

actions.move_to_element(iframe).move_by_offset(frame_x-550,frame_y+70).click_and_hold().pause(20).perform()
actions.move_to_element(iframe).move_by_offset(frame_x-550, frame_y+70).actions.key_down(Keys.CONTROL).actions.key_down(Keys.ENTER).pause(20).perform()
Run Code Online (Sandbox Code Playgroud)

......还有很多方法!如何使用 Selenium 解决这个问题

iframe selenium captcha mouseevent python-3.x

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

captcha ×1

iframe ×1

mouseevent ×1

python-3.x ×1

selenium ×1