首页 > 解决方案 > Python Selenium 键无法在浏览器中按 CTRL+F 搜索

问题描述

我正在尝试使用 Selenium 和 Python 在体育比赛网站上查找运动员。由于该网站写得非常糟糕,我认为找到她的最简单方法不是在 HTML 中搜索元素,而是让驱动程序按ctrl+F然后输入她的名字。

如果你想试一试,这是网址:https ://www.federdanza.it/images/gare/2019_2020/EXPORT/20210717_padiglione1/6052-coppie_danzestd_senior3(55-60)_as/index.htm

到目前为止,我已经成功地在 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。我还能尝试什么?

标签: pythonmacosseleniumselenium-webdriverweb-scraping

解决方案


pyautogui您可以尝试使用该模块,而不是使用 Actionschains 。搜索一个词看起来像这样:

import pyautogui

pyautogui.hotkey('ctrl','f') 
pyautogui.typewrite('Your keyword')    
pyautogui.hotkey('Return')

更多信息在这里:https ://pyautogui.readthedocs.io/en/latest/


推荐阅读