python - Python Selenium 键无法在浏览器中按 CTRL+F 搜索
问题描述
我正在尝试使用 Selenium 和 Python 在体育比赛网站上查找运动员。由于该网站写得非常糟糕,我认为找到她的最简单方法不是在 HTML 中搜索元素,而是让驱动程序按ctrl+F然后输入她的名字。
到目前为止,我已经成功地在 DuckDuckGo 搜索栏中输入了内容,但我不明白为什么我无法在 Chrome 搜索栏中输入内容。
如您所见,目前的代码正在尝试搜索“RUG”。
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
import time
PATH = "/chromedriver"
driver = webdriver.Chrome(PATH)
driver.get(url)
driver.maximize_window()
time.sleep(10)
#Waiting for the web page to load
action1 = ActionChains(driver)
action2 = ActionChains(driver)
action3 = ActionChains(driver)
action1.key_down(Keys.COMMAND).send_keys('F').key_up(Keys.COMMAND)
action2.send_keys('R').send_keys('U').send_keys('G')
action3.send_keys(Keys.ENTER)
action1.perform()
action2.perform()
action3.perform()
我什至要求程序在每次成功执行操作时在控制台中告诉我,它似乎工作正常,即使浏览器中没有响应。可能是因为我使用的是 Mac 并且按键略有不同吗?在 Windows 上,搜索命令由Ctrl+调用,F而在 Mac 上由Cmd+调用F。我还能尝试什么?
解决方案
pyautogui
您可以尝试使用该模块,而不是使用 Actionschains 。搜索一个词看起来像这样:
import pyautogui
pyautogui.hotkey('ctrl','f')
pyautogui.typewrite('Your keyword')
pyautogui.hotkey('Return')
推荐阅读
- node.js - 吉普错误!: `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` 失败,退出代码:1
- c# - 我正在创建一个数组,我想从构造函数中指定它的长度
- c# - 动态生成属性表达式和空参数
- javascript - 如何将 JSON 数据存储在 JavaSCript 中的变量中?
- c# - x509store.Certificates.Find 为对象查找值传入字符串变量不匹配,但硬编码字符串值不匹配
- encryption - 如何在notepad++上配置nppcrypt插件参数
- python-3.x - 无法在 Ubuntu 中创建百万套接字连接
- python - 寻根代码的 Python TypeError(QuantEcon 包)
- microsoft-graph-api - Microsoft Graph API beta OnlineMeetings 错误 - 服务器错误:在 AAD 中按用户 ID 查找用户失败
- javascript - 使用 setValueAtTime() 设置后如何检查 AudioParam 的值