selenium右键不管用的问题


因为在自学过程中呢,遇到了selenium右键不管用的问题,所以找了很多办法,我把我的方法列出来你你们也可以试一下。
1、在Selenium中,有一个ActionChains模块支持,右键,鼠标悬停,拖拽,双击等动作。

import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com')
time.sleep(2)

element = driver.find_element_by_xpath("//*[@id='lg']/img")
actionChains = ActionChains(driver)
actionChains.context_click(element).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ENTER).perform()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
可惜我的第一种方法不成功。再来尝试其他办法,下面的办法我就不贴了,基本上跟第一种的差不多

2.既然send_keys​方法不行,那我接着找到了key_down和key_up的方法,按下某个键后再释放,达到相同的目的,实践后还是不行,
3.既然上面的都不行,后来我又找到了move_by_offset方法,可惜还是不行,要绝望了。主要代码如下:

driver = webdriver.Chrome()

鼠标移动到指定左边

ActionChains(driver).move_by_offset(x1,0).perform()
ActionChains(driver).move_by_offset(x2,0).perform()
ActionChains(driver).click()
1
2
3
4
5
4.但是后来我又找到了 win32api/win32con这两个类,完美解决了困扰我很长时间的问题,当然要下载 。 在cmd 里面 运行这行代码 pip install pypiwin32,如果不行的话那你就网上找资源去吧,下面附代码:

win32con自带键位表

win32api.keybd_event(40,0,0,0)

表示键盘方向键的下,后面附键位表

action = ActionChains(driver)
action.context_click(aa).perform()
time.sleep(1)
win32api.keybd_event(40,win32con.KEYEVENTF_KEYUP,0)#移动到菜单
win32api.keybd_event(13,win32con.KEYEVENTF_KEYUP,0)#然后enter按下
1
2
3
4
5
6
7
8
9

————————————————
版权声明:本文为CSDN博主「L-O-S-E-R」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_32151639/java/article/details/78458546

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容